I stumbled across a good article explaining the "Rising Tide of Customer Defection." For a small company, it's especially important to think about this all the time and strive to keep every customer happy. For our company, this sometimes means giving daily status reports BY PHONE for the status of a bug or spending an hour on the phone training the same user every week on the same concept.
However, you always have to set expectations properly. Most small businesses try to give the impression that they're a much larger company with infinite resources. That's important to get the product out into the market and get leads, but you can't continue with that illusion after they've become a customer. In the article, Bill Zollar (CEO of Yellow) explains how they dug through boxes of customer invoices looking to see if they picked up and delivered everything on time and in-tact and did they send the customer an accurate invoice.
“…if you fail to follow through on what customers expect they can’t possibly like you.” And (as nobody should need to tell any businessperson) customers who don’t like you are more likely to defect.
I think it's always better to under-promise and over-deliver and that's something that's very hard to do in the software business. Adding a new feature for that hot prospect sounds so tempting, but as Kathy Sierra says, "Don't give in to feature demands!"