Is this even legal anymore? I thought this practice has been outlawed under new anti-pollution regulations.
Not only that, but you could be fined thousands by a "Human Rights Tribunal" for offending someone's "sensibilities."
Assuming people with strong opinions (however misguided those opinions may be) will respond rationally is a stretch. When people react emotionally instead of rationally they come across exactly like that customer did........It helps me to deal with their behavior in a calm and controlled manner. When I know, or think I know, where someone is coming from, I can deal with most anything they may say or do....That being said, some people are just nuts and I try to ignore them
You should try owning firearms. Then the irrational antis really come out of the woodwork, and no amount of logic or rational thought will prevail

I sometimes find it difficult to just let people go on about things they don't know about without trying to enlighten them of an opposing point of view or correct them when they're spreading blatant lies or misinformation to other people and I am witness to it. Coincidentally, I don't like working in retail, sales, customer service, etc, where I could conceivably have to deal with this kind of BS. I work in a large machine shop where I only have to deal with maybe 20 people with any kind of regularity, and in general they're pretty laid back, "good ol' boys" type of people.
Where was your boss while you were being verbally assaulted?? Next time tell them you don't get yelled at for something you didn't do and to go see the manager. You don't get paid to get yelled at and your boss shouldn't allow it!
Unfortunately, the manager or boss will be MOST concerned about the bottom line $$$, good will, word of mouth and reputation, and repeat business. You get paid to do what you're told to do, and if that includes putting up with stupid people and their BS, then that's what it includes. Don't like it? Go find another job, there's a whole stack of resumes from people who would love to have yours current one :S This fosters the "customer is always right and has a license to treat employees like garbage and always get what they want" attitude and environment. It doesn't help that the entitlement generation is REALLY coming into their own now, and more and more people act this way by default.
Advice? As I see it, you have a couple of options.
1) Grow a thicker skin, and pick your battles. You can't fix stupid. Laugh about it later.
2) Stand up for yourself, and maybe get fired. Rent and car payments be damned, I have somethign to prove!
3) Whine to the boss that nobody stood up for you, which makes YOU look weak, with weak problems solving skills, confidence, leadership ability, etc.
4) Make an effort to get a different job where the issue is a non issue, knowing full well that there are going to be jerks regardless, see option 1