(Recently I posted the following as a comment in a thread over on Google+)
Freedom of speech only applies to speech about the government, and then only if the speech does not incite anyone to break the law or slander any individual. Everyone else can sue you, fire you, and in many ways legally harass you not only for stating your opinion but also for stating actual known facts. And your speech doesn’t even have to be directed at or concern the business or entity that does the suing, firing, or harassing.
For example, I can say “Republicans are baby-raping lepers who would kill their own mothers for a nickel”, and that’s okay because I’m not maligning any individual. I can even say “John Boehner is a baby-raping leper who would kill his own mother for a nickel” and that would be okay unless John Boehner wanted to make an issue of it and sue me – although I’m sure in his position he could legally harass me using the government: say by getting the IRS to audit me or something.
However, it would be perfectly legal for my employer to fire me for saying “John Boehner is a baby-raping leper who would kill his own mother for a nickel”, or for my next door neighbor to use legal means to harass me: say by calling the police and saying he suspects illegal activity is taking place at my residence. As long as he doesn’t say he suspects I, personally, am engaging in illegal activities. Then I could sue for slander, and he might be subject to penalties for making false accusations.
Recently Starbucks fired an employee for posting a song on the Internet about how some Starbucks customers are jerks. Perfectly legal: Starbucks claimed it showed the company in a bad light. Don’t see how – he didn’t say people who work for Starbucks are jerks – although obviously some of them are.
Now, there are some cool exceptions to all of this. For example if you make statements that are untrue about public figures in a satirical context, and that context is obvious, you can pretty-much get away with it and be safe from being sued. But you could still be fired.
These days employers can fire you for just about anything as long as they aren’t discriminating against you in a legally recognized way, and those ways are very narrowly and specifically defined. For example, if you are male and you compliment a female co-worker on her clothing that could legally constitute sexual harassment. However if you are female and you compliment a male co-worker on their clothing, that may or may not be sexual harassment depending on what state you’re in. But if you are a woman and you say your work environment is hostile to women, your employer would definitely think twice about firing you for it, lest they make it come true. What they would do is wait a certain amount of time and then fire you for it while claiming they are firing you for something else.
Fucked-up world we live in, isn’t it? (I can’t be penalized for that because it’s a general statement about the entire planet – although I could of course be fired for saying it if my employer thinks it reflects badly on them. Which they might as they are on this planet. Fortunately I have no employer so screw them!)