Asymmetrical bargaining power

There was a story from yesterday's news that I can't quite get a grip on. A company in Michigan has enacted a blanket anti-smoking rule, disallowing employees from smoking in their private lives. Four of their employees have resigned in protest. Their argument is that it raises the company's health insurance costs because smokers are more likely to need health care. There are some conflicting issues here, but first I want to add the part where the company looks sort of good. The company is paying for any steps smokers want to take to quit smoking for no cost, and some employees have quit smoking in order to avoid losing their jobs.

The first thing to take into account is that most employment in the United States is at-will. This is interesting, because in at-will employment it is totally (legally) permissible to terminate people for no reason at all, but not for certain specified reasons (race, gender, other groups covered by anti-discrimination law). In some states, one of the reasons you can't fire someone is lifestyle issues like smoking, but only two states have laws fully barring lifestyle discrimination, and many states, including Michigan, don't bar it at all.

So this is legally permissible, but I think there are real ethical problems with the extent to which an employer can control their workers actions in the workers' private lives. If you can regulate smoking due to health reasons, the most obvious area to move to is the eating and exercise behavior, but really under at-will employment you can fire for any reason which hasn't been specifically legally prohibited. While in general I'm in favor of agents being able to come to and enforce voluntary agreements, there are always worries about unequal bargaining power in employment contracts. People tend to really need jobs and are willing to agree to many things in order to get them, and in general there is a greater supply of labor than there is a demand for labor (that last was an empirical claim which I have no basis for, but challenge anyone to disprove).

Issues like this are why I'm a big fan of unions, they tend to bring bargaining power closer to equilibrium. If many workers contracts are being negotiated at once, the company needs to agree almost as much, or possibly more, than the workers do. So unions can negotiate contracts where people can only be fired for cause, stipulate what sorts of things count as causes (not doing your job properly should count as a good cause, liking eggplant parmigiana shouldn't be). Unions are able to negotiate better contracts because, among others, they're negotiating for the company's best workers as well as the worst. So all the company's workers can, theoretically, get a contract that's not as good as what the company would be willing to offer to keep their best workers, but better than the minimal terms which they're willing to offer their worst. So I suggest that the employees of Weyco unionize, if they aren't part of one, and negotiate a new collective bargaining agreement which forbids being fired for smoking and other behavior outside of work.