What I find strange about tipping is that the employees get pissed of with the customer if he doesn't tip.
If I was in their shoes I would be pissed of with my employer for making "beg" the customers for getting my salary.
Imagine if as a software engineer I was told I would be paid half of what I am getting paid now, and for the other half I would have to go and ask for a "tip" from the end users. I would be absolutely furious.