My used 535iA was owned by a smoker. I bought a few Baking Soda boxes and left them inside the car. That helped alot to get rid of the smoker smell. But what really did the trick was one of those AC anti bacterial killing cleaners.
I used this one from SONAX. It works like a bug bomb... you switch on the AC and also switch on the RECIRCULATION button. Then set off the "bomb" and let the car idle with the AC on for 15 minutes. This really killed all the weird smells in my old 5er.
http://www.amazon.de/SONAX-03231000-...+power+cleaner
I don't think this product is sold in the USA yet... but I know Detailers Domain sells a similar product.
I would also change your charcoal pollen filter under the engine hood before using a product like this. It should be changed every year anyways.
Good Luck
Dackel