@DeathByVisualStudio: No, I don't mean that. That class of user requires different training and help, but if you treat them like idiots, then you aren't going to get anywhere. IT doesn't always know the customers domain, but it is our job to know technology and how it can help them do their jobs. In the area of technology we should be the experts (by that, I mean actually be an expert, not a know-it-all), and we must provide what they need to get their job done. If we have to guide them toward a specific solution or make business rules suggestions to allow the software to help instead of hinder, then so be it.

Coming to the customer with the attitude of "I'm going to deploy this thing, but I don't like it and you won't like it, so I'm going to do this other stuff to 'fix' it", is only going to cause problems. Always passing blame to the vedor will either undermine the confidence the user has in the IT organization, or it will make them resistant to the needed changes. However, when the customer sees IT positive and excited about new deployments, then that feeling rubs off on them. The changes may still be difficult, but they are more willing to tackle them.