And again how would they know what you do when you're not at work?
An employer can have a no smoking policy at the workplace. But what you do when not at work is no one's business but yours.
If the business (a free market is something the right loves to say) says they do not want to hire anyone who smokes, they have the right to do so. If you dont like it, dont work there. Period. It is a legal request.
If they ask you to sign something that says you will not give confidential material to the competitors, and you do it from your home, not from work, are you wrong? Should you be fired?
If they ask you to sign something that says you will not smoke, ever and you sign it and smoke anyway, should you be fired?
So I can ask a woman if she will ever get pregnant and if she says yes I can refuse to hire her or fire her if I get her to sign a contract?
It would be a really foolish thing for an employer to do, but in my opinion, if it is your business and you don't want the minimal extra liability or risk associated with a pregnant employee, don't want to give the time off for regular doctors' appointments, etc., it should be your right to not hire one if you don't want to. In fact, if it is a profession in which pregnancy poses a significant risk--working with nuclear medicine or some such for instance--it could be not only reasonable but wise to have such a provision.
When I was much younger and in my prime child bearing years, I know I was passed over for jobs purely because the cost to train me was worth it to the employer only if he could reasonably expect me to be available to work for some time. He knew that was much less likely for a young woman who wanted a family, and in those days, would likely want to stay home and raise her baby.
The whole point of this folks is whether employers should be able to set the standards for the employees that they hire. To allow a person that freedom does not take away freedom from those who cannot or don't want to meet such standards.