When mine was much newer I made a template, folded a piece of cardboard into a V-shape that seemed like it would sit nicely in my floor/center console bin, then roamed a junkyard till I found one of the center dash flip-down styles that roughly matched the cardboard template and fit reasonably. I don't recall what vehicle it came out of.
Then I took a small plastic shell, put an LED in it with a switch so it was illuminated, mounted that where the floor console trim meets the dash. Kept it in the vehicle for a while, then right after the first time a passenger left a burn mark on my carpet, took it out. After that it became a no-smoking vehicle.
Several years have gone by since then and I wiped down every reasonably accessible surface with Mr. Clean (warm ammonia + detergent solution does about as well as anything to get tobacco tar off of surfaces). It doesn't smell like an ashtray now but maybe there's the slightest scent (or maybe just my imagination). Carpet, cloth seats, headliners, etc are the difficult part - I used Mr Clean on the carpet but don't know what ammonia would do to headliner foam or adhesive (if anything). Now that our vehicles are older, touching the headliner with *anything* might destroy it.
Cup holder on the window would work horrible, if the window was cracked (which you would want to do if someone's smoking) would cause an air stream that pulled ash out of it and all over the interior. Ashing out the window can also suck it back in and doesn't resolve what to do with the butt when finished. Even a basic thing like being pulled over by police for a traffic violation and being told to put out your cigarette can be a problem then, as they can get you for littering if you toss it outside... guess you could keep a spare bottle of water inside just for such occasions (or to drink if there are no such occasions, which I do anyway in spring through fall, once temperatures stay above freezing).