They'll lose the tip if things are taking too long/wrong. Although I rarely complain.
I think people who try and complain about anything to get discount/free are ridiculous and should be ashamed, my girlfriend works in a restaurant and the most absurd story was that of a woman who yelled at her for a severe discount as she didn't like how many onion rings she got with her burger (it was a topping and she expected a portion for some reason). Other examples are people who complain about the temperature in the restaurant etc.
Minor issues = no tip
More significant = no tip and a whinge at the table staff
Serious issues = no tips, complaint to senior staff, possibly even refusal to pay
I don't buy the whole 'oh hard job, bound to make mistakes' sob story. My job can be hard too and if I screw up, I have to take it on the chin, I don't see why people in service industries should be let off giving bad service just because it's 'hard'.