This is a topic that seems to be coming up more often than in the past... but there are a few things you can do to help eliminate the 'smokey' smell/odor.
First thing is to remove the ashtray (if present) and thoroughly clean it. I usually let it soak in a bucket for the better part of the day and scrub it with a tooth or small enough brush that all remaining debris are removed. From there, thoroughly rinse and dry it and spray some odor eliminator in the ashtray itself. I ALWAYS use the Meguiar's odor eliminator spray because it is really the only stuff that works. Febreeze is O.K., but I find that you have to keep re-applying the product in order for it to become remotely effective.
The next thing you need to do is fully clean the interior top to bottom, side to side, and in and out. Depending on what kind of interior you have (leather vs. cloth) your cleaning methods for those materials will vary. To start off, you will want to thoroughly vacuum the interior, using a semi-stiff brush to loosen ground-in dirt. This works well for the nooks, crannies, and crevices in your seats where cigarette ash can sometimes accumulate over time. For cloth interiors, ensure you use the proper fabric cleaner, keeping in mind that you want to use the FOAM and not the liquid and drenching the seats really won't be as effective as using the frothy foam. Be sure to use a brush when applying the product, and then thoroughly vacuum the areas afterwards to remove excess moisture. For leather interiors however, you will want to use a quality product and preferably one that has a 2-step process. The idea behind this is that the first step is specifically formulated to clean, and the second is aimed more towards conditioning. This is a better approach than an "all-in-one" product, because typically the cleaner is a bit more powerful. Also be sure that any leather care product you are about to apply to leather upholstery is pH balanced to prevent discolouration or anything along those lines.
For dash/trim/plastics, if available use compressed air to blow out all inaccessible areas and remove debris. From there, use the proper dilution of all-purpose cleaner to clean all surfaces, keeping in mind that some areas MAY need a second pass to remove all of the smokey film build-up. From there, apply your favourite dash/trim conditioner product, but make sure it is a QUALITY product like Aerospace 303 or Meguiar's #40 vinyl/rubber cleaner/conditioner as Armor All or heavily-silicone based products will not provide as high-quality results.
In the case with windows, I would suggest a foam-based product such as GM AC Delco foaming glass cleaner. Use microfiber cloths (folded into even squares) to clean the windows, with one cloth for applying the product, and one dry cloth to remove it. I must note that is has been my experience that you may need to repeat this several times as the smoke build-up on windows can be a pain to FULLY remove. You will also notice that after doing this, your windows will probably defrost much faster since they are CLLLEEEAAAANNN!!!

For carpets, again make sure you vacuum them thoroughly, and proceed with applying your favourite carpet cleaner used in conjunction with a brush to remove stains and provide a good general cleaning. Follow by re-vacuuming the carpets to remove excess debris, moisture, etc. If it is available, an extractor will provide a more deep-down cleaning, but just make sure you remove as much excess moisture (in other words, vacuum the areas thoroughly) afterwards to help speed up the drying time.
You have to remember.. that in addition, there are also 2 areas which people allllllllllllllllllllllllllways over-look when trying to de-smoke-ify (is this a word?? haha) a vehicle.
The Headliner
This is quite possibly one of the most tedious components of a vehicle's interior to clean. Headliners are often held in place with some type of industrial glue, which when soaked with water, can cause the headliner to 'sag' afterwards. To avoid this, I usually use AC Delco Foaming glass cleaner and a microfiber towel to remove the smoke build-up from the headliner. You may require multiple microfibers, so make sure you have an ample supply at the ready. All you really need to do is apply some cleaner onto your neatly-folded microfiber cloth, and gently rub it into the headliner. If you are using a white or light-coloured cloth, you'll see the dirt come off instantly. Keep doing this until the area appears to be clean, but be mindful not to saturate the headliner. You can always follow up with a light application of odor-eliminator spray, but you may have to apply it several times, each with an extremely light coat as to not saturate the headliner.
The HVAC system
People who smoke in their vehicles probably have the a/c or heat running while they do it. So you might ask yourself, if they're smoking while running the HVAC system.. what happens with the smoke odor?? Well, it makes its way into, and often recirculates throughout the HVAC system. This is why no matter how hard you try to clean the interior of the vehicle, that smell always seems to re-appear. In actual fact, you may not be killing off the source of the smell.. and until you do, it will always be there.. whether extremely or faintly apparent. There is a product that I always use for my client's vehicles.. however I am going to have to look up the name as it isn't coming to me at the moment... however it is similar to this:
http://www.centralgaragecarcroft.co.uk/bugs.htmIf anyone has any questions... feeeeeeel free to post up!!!
