In regards to haircuts, I never used to tip, I never realized it was customary. In the past few years, I've taken to tipping a bit (usually if it's on a CC receipt, makes things too easy). I do hate it when I go someplace to get a haircut and mistakenly assume that I'd be paying $10 for a trim. I get the bill for $30 and just about mess my drawers. There's not much chance I'll tip (much, if any) on that.
There are some states that can hire someone at less than minimum wage (I've heard $2.70 or so/hr). They're banking on the custom of tipping 10% or more. Often times servers are taxed on 10% regardless of what they actually receive in tips. Leaving a tiny (or no) tip cuts deep into the wage. Add to the that the places that require servers to "tip out" (share the tips) with the bussers, salad preppers, cooks, hosts/hostesses, and you can see one of the problems. Tipping is largely misunderstood.
And while I'm on it, I feel for the servers. If you didn't enjoy your experience, the best way would be to speak with a manager, not leave the "penny" tip or something like that. There is a good chance that whatever inconvenience you experienced was caused by miscommunication. There may have been a trainee cook that had to recook the meal, all sorts of things. If it happens to be in a state where the guy/gal is making $4/hr + tips and he busts his/her ass serving you for an hour but you don't feel you got what you deserved, a nonexistant tip is just cold. It's intended to say "Hah, didn't like your service, so no dough for you". It comes across as "I'm a cheap bastard."
Woah... was starting to ramble. I think I hear an exit calling.