Diogenes said:
Wrong!
What you just described is coercion 
Come again?
Please understand that I am
genuinely confused that you would view my example as coercion, but not firing an employee who refuses to change his legal, private behaviors and submit to testing to ensure compliance.
My point was that employers usually have more power than employees in an employment situation. This is why labor unions came about.
The counter argument seems to be that employment is a voluntary contract between 2 equal parties therefore any terms agreed to are valid (libertarian dogma).
My ultimate point is that the terms of the employment contract (like agreeing to give up the first born for sex work) is the kind of thing that people agree to only because of the imbalance of power between the employee and employer.
If we believe (as I believe you and Shanek do) that the employer has the right to include not smoking on private time as a condition of employment then it seems there is no limit to what terms an employer can require.
What an employee will agree to depends upon how much he needs the job. The tighter the employment market, the more unreasonable the demands can become.
This will lead to corporate fascism or neo-feudalism, whichever term you prefer.
What a person does on his own time is of no legitimate concern of any employer therefore my opinion is that hiring practices may not discriminate against legal, private behaviors.
Not as a formal policy anyway.