It's always been my belief that those who are rude to service people as you describe are suffering from some sense of inadequacy within themselves. They're rude to wait staff, shop clerks etc because it gives them a momentary false sense of power.
Years and years ago, I used to work in a coffee shop as a supervisor and there were a handful of mostly men, in this case, that would come in and berate the girls over simple mistakes, sometimes to the point of tears (many of the staff were kids, teenagers, 16, 17). I explained to them that these men were yelling at them as a way of redressing their own ...ahem, "shortcomings". No more tears. :)