My first company car was a hand me down Mazda 626 from a smoker. Whatever I did I couldn't stop it reeking on hot days because the smoke gets into the ventilation system.
Good job it was a write off scrapper after 3 months. A proper job.
1. Charcoal
2. Bowl of White Vinegar with a Towel in
3. Change every interior bulb (When hot they absorb the smoke)
4. Clean headlining and all trims I used Meguiars All Purpose Cleaner in various dilutions- Great stuff.
That is everything. I can agree with some of the others that it never goes fully. My dads is 95% gone but if it has been shut up for a week or so the smell does come back slightly. But very slightly.
Trying not to chuckle at the posts above (kippers also recommended), no quick fixes to get rid of fag smoke smells.
Use a good quality car shampoo (auto-glym do a good one) and clean seats, door trims and headlining. Best done on a dry day so you can leave the windows open too.