I was reading an excellent article by David S. Platt called "Using WPF for Good and Not Evil" in which he takes a sample application written to show off Windows Presentation Foundation (WPF) and tells what he feels are the good and bad points of the program. One thing that I read that really resonated with me was "Platt’s First, Last, and Only Law of User Experience Design states, “KNOW THY USER, FOR HE IS NOT THEE.” " He wrote this about software developers mainly but it would work for consultants as well although I would slightly rewrite it as "KNOW THY CUSTOMER, FOR HE (or SHE) IS NOT THEE".
I have been guilty of this in the past myself. Most of my early contracts were with the United States military (mainly the USAF) and I was fairly successful (at least I think so). However when I switched to working with commercial customers I treated them the same way and failed miserably. It took me a while to get it through my thick skull that commercial customers are not the same as military customers and need to be treated differently. For that matter, each customer is not like the last customer and needs to be treated differently. Once I realized that and practiced it I found my customers were much happier with me.
So developers and customers alike, get to know your users/customers and how they would likely do things. I am not saying that nothing needs to change but with a better understanding of how things are currently done and why you will be able to better present and defend yourself (yes, even though you are hired as the expert you will need to defend why you want things done a certain way) when you suggest changes.