How is it that sports leagues are able to fine players for things like expressing their displeasure with the league or its employees, or wearing the wrong clothes? There must be some sort of special employee-employer thing going on, because I can't imagine any employer I've ever had being legally able to fine me for legally protected speech. Is this something the unions agree to on collective bargaining? Is there standard boiler-plate language in every contract?
Update: I'm referring to the US-based leagues (MLB, NHL, NBA, NFL, MLS, WNBA) since they operate under US law. Leagues based in other countries may operate under different legal regimes and therefore may have different ways of doing things.