The proper way to get rid of smells from a smoker is to wash all of the paintable surfaces with trisodium phosphate, paint all of the walls and ceilings with Kilz primer, and then clean the floors, doors, and woodwork (and everything, windows, etc) with a solvent that removes the tar and resin (or paint them with Kilz too). If there is carpet, remove the carpet and pad and install new carpet. Might need to replace fixtures and furnishings depending on how bad it is.
So yeah, smoking in a house is insanely destructive and takes a long time to actually remove the odor forever.
Also, check all of the drains (including floor drains) to ensure there is water in the trap.
It was quite interesting in the UK when the smoking ban kicked in for public places, and how many pubs needed this sort of treatment once people stopped actively smoking in the premises, as without the active smoke to mask it people noticed that the place was actually a bit nasty.
So yeah, smoking in a house is insanely destructive and takes a long time to actually remove the odor forever.
Also, check all of the drains (including floor drains) to ensure there is water in the trap.