I've worked in technology for a long time, with customers who have utilized my services for 20+ years. In this business, a three or four year customer is considered loyal, but...20 years?
"How on Earth...?" I hear you say.
The answer is: outstanding service.
You were raised in a WHAT? Prior to entering the technology sector, I was born into and raised in...the hotel industry. Specifically, my father was general manager of a luxury business hotel in Chicago (the Knickerbocker, before you ask), as was his father. At that time, general managers and their families usually lived on-site.
Living in a hotel (yes, just like the title character in the Eloise books) was fun...but it was also hard work. I was drilled in etiquette and communication from a very early age. Making guests feel welcome and comfortable was the top goal of every day. Anticipating guests' needs before they even realized they had those needs was an essential skill.
Many years later, when I started my first IT service company, these same service principles won us a number of happy customers...and those folks happen to be the core of my 20+ year customer base today.
The principles of providing good IT service aren't difficult or time-consuming, but they do require consistency of delivery:
First impressions are important. Speak clearly, look people in the eye, and give them a firm (but not bone-crushing) handshake. Use proper and appropriate language. If you have a swearing problem, train yourself out of it.
Smile...and mean it. I've lost track of how many times I've been told by people "What a nice smile!" when first meeting me. I didn't go to a cosmetic dentist to get that reaction, however; all I did was learn to smile honestly and openly, because I am always delighted to meet a new client. (If you meet new clients all the time, and you don't honestly feel thrilled to meet them, you're in the wrong business role.)
Listen more than you talk. The more you listen, the better a conversationalist people will deem you. It's important to understand what your client wants/needs/feels, and you're not going to get that information by talking about yourself constantly. They're the client; it really is all about them.
Manage expectations. When discussing what it is you're going to do for your client, repeat back what you've heard, and ask them to confirm that you captured all of their concerns and desired action items. Also, don't promise things that you're not certain you can deliver. Be honest if you can't get something done within a certain timeframe.
Do what you say, and say what you did. After setting expectations, fulfill them as fully as you can. Contact the client as soon as you're done with whatever task(s) you set out to do, and let them know how things went, and if there are any follow-up items.
Follow up. I always follow up each client visit with an email to the client summarizing what was done, how much time was spent, and what task items (if any) are remaining to be completed.
Put yourself in their shoes. To you, a broken printer may not seem important. If your client spends their entire day generating critical proposals using a special color printer, and the nearest color printer is in the next building, fixing that broken printer isn't just important, it's urgent. They will fixate on that broken printer until it's working again. Try to understand what's important to the client, and align yourself with their mission/values/goals so that you can deliver better service.
Defuse verbal conflicts. My favorite book ever written about how to communicate is Suzette Haden Elgin's The Gentle Art of Verbal Self Defense. While the volume is fairly slender, it can tean you how to defuse nearly any type of disagreement with anyone. This is especially important in a field such as IT Operations or Support. While the book is currently out of print, used copies are easily findable online and in used bookstores.
Stop the knowledge competition. There's an obnoxious character from Saturday Night Live named Nick Burns, Computer Guy. One of his signature phrases is "Gimme the keyboard". Nick delights in making end users feel stupid and in showing how much more he knows. Don't be Nick. Be someone nicer, kinder, and gentler. Rather than telling a client "you don't understand", explain instead the factors that go into making the type of decision for which you're suggesting a solution. Lead them step by step through the logical process of getting from Point A to your desired Point B. They'll be easier to work with, and rather than feeling stupid, they'll feel something much better: informed.
Anticipate needs. If you pay close attention to your clients, you'll eventually be able to anticipate their needs. One of the best ways to delight a client is to anticipate their needs. Even if they don't buy into whatever it is you're suggesting at that moment, they will stop and think, "Wow, I'm really getting attention paid to me here. I like this."