This is ridiculous, if you could fire smokers for raising the cost of insurance, you could then terminate all overweight people, all homosexuals, everyone with diabetes, all women (don't forget, they can get pregnant), everyone over 35 (because they should be getting mammograms for women and men should start getting their colon checked). Where will it all end, it won't. It all fits under the heading of discrimination. They just found an excuse for discriminating against smokers (No, I don't smoke and I don't like when people smoke by me).
The only way to legally keep smokers from working for you is to change your smoking policies as some companies have done. This was mentioned earlier in the thread, make it more difficult for smokers to practice their habit. Make smoking on the grounds illegal, that way they have to actually leave to smoke. Firing people because they smoke is absurd.