A good interior detailing (and exterior while you're at it) complete with upholstery shampooing will often do the trick, and is worth the money. Ask the place if they have any special chemicals to remove the cig smell: they often do. And make sure they will hit the headliner and underneath the seats. Then you can use the What Smell after if there still is a bit of lingering. If you have a cabin air filter, change it. If you have access to pressurized air, blow down your vents, ALL of them. Clean the HELL out of the ashtray, and get rid of the cigarette lighter. That includes the receptacle part of the ashtray that's in the dash! And inside the cig lighter... pull the fuse, use electronics contact cleaner, then plug the fuse back in once it's dry. After all, you'll be using it for your USB passthrough anyway, right? Get rid of your old floormats before hand and get a new set, you probably needed new ones anyway

.
Once you get your car to a pristine condition, that in itself is a powerful deterrent to smoking any analogs in it. After spending a couple hundred bucks on a good detailing, you want to ruin it with cig smoke? Nah.