I have a friend who is a medical doctor, and he often complains that he has to deal with patients who come into his office with symptoms that they have "self-diagnosed" and that nine times out of ten the treatment that they request, or the ailment that they think they have, is not even close to their actual problem.
It may sound obvious that the key to providing excellent I.T. support is knowing what your customer or end-user wants to do and providing them with the tools to do it, however I am surprised at just how often I witness I.T. support personnel treating the symptom instead of the disease.
There is nothing more frustrating to an end-user than going to their I.T. support person and asking for help only to receive "assistance" that doesn't get them where they want to go. Time and time again I witness I.T. support give the user exactly what they asked for, only to have the end-user go away frustrated because what they wanted wasn't what they needed.
Any time I am approached by an end user I am sure to work one specific question into the conversation early on. That question is "What are you trying to do?" My goal in assisting an end-user is to make sure that I understand what they are trying to accomplish, once I am sure we are on the same page for the end result, then we can start discussing the "how".
If more I.T. support personnel would take the time to understand what their end users are trying to accomplish, they could save a lot of frustration on both sides by no longer having to solve "problems" that don't even exist. By keeping the focus on the end result, you can be sure that you and your user are both working towards the same goal.