As a smoker, I've been in this debate far too often. A few points;
1) If you dislike smoking so much, don't go to the one place on the planet where it's still allowed.
Most smokers aren't really bothered by the fact that they have to sit/stand in designated smoking areas and don't have a problem putting up with such restrictions. Smoking has been banned just about anywhere, and we've adapted to that, don't come to the one square foot where I'm forced to go to light up and tell me it's bothering you.
If your friends are smokers, they should understand that smoking bothers you. They won't mind going to non-smoking bars or stepping outside at their/your home if they know you can't stand their habit. If they refuse to take your feelings into account, maybe they're not such good friends after all.
2) With that in mind, A little kindness goes a long way.
I'd never be a dick about my habit, I don't smoke near children, sick people or (non-smoking) old people, and I don't mind moving a couple of feet if you were to politely ask.
Two problems in that concept;
-Asking 'politely' usually boils down to "fuck off with your disgusting habit" in which case I'm less inclined to be of service.
-Not every smoker shares my opinion on this. There will always be jerks, but they would otherwise be bothering you with loud music or anything else.
Now I know loud music isn't exactly known to cause cancer, but judging all smokers simply because there's a few annoying ones is the same as saying "all gamers are annoying, screaming, swearing kids" based on a few bad online experiences.
Cigarettes have many negative effects, turning you into a complete douche isn't one of them.
3) Smoking isn't the only thing that kills.
I know exhaust fumes have been mentioned, and everyone knows they're much worse than second-hand smoke. We never see the 'go drive your car somewhere else' debate popping up though.
Just think about how many people will inhale the fumes of your (or your mom's) car while you're driving around the block for groceries before you start complaining about the guy standing near the entrance of the store smoking a cigarette. He probably got more crap in his lungs from your car than you got from his cigarette.
4) Smoking is the perfect scapegoat.
Fastfood, coca-cola, coffee, even eating too much meat or getting too many vitamins are bad for your health. Your government just doesn't put a ban on those things because everyone likes them too much and it would destroy a substantial part of the economy if they did.
Smoking is an easy scapegoat since it's a 'voluntary' action that doesn't benefit you in any way and can be harmful for those around you rather than just yourself.
Imagine your country restricting the use of your car to the outskirts of town, or banning it altogether.
Imagine any unhealthy food and drinks being banned, or rationed to two servings per month.
Imagine all factories that pollute even the slightest bit being forced to shut down production.
Imagine the outrage it would cause and the effect it would have on your country's economy.
Smoking is widely known and accepted to be harmful. It's much easier for politicians to 'bash on smoking a bit more' than it is to try and tackle a more sensitive issue, like banning sweaty fat people with some leftover Big Mac on their chin from the subway because they take up two seats.
TL;DR
-Smoking kills, smells etc. We know, stop telling us. Also, stop telling me to quit, I don't tell you what to do with your life either.
-Try telling someone politely that their habit is bugging you before going mental over it, if they still refuse to cooperate, you're perfectly justified kicking their teeth in.
-Try looking at some other bad habits for a change, the whole anti-smoking crusade is getting old.
/rant, I need a cigarette.