You are correct to assume that this happens because of moisture in the car vaporizing, condensing on the inside of the (colder than the environment) windshield and freezing when the temperature inside drops enough. People bring a lot of water into the car by breathing and bearing snow/rain with their clothing. To avoid this you need to remove as much moisture from the interior as possible. I have been fighting this problem for a long time myself, so here is what I can suggest:
- Use the air conditioning system when you can. It dries out the blown air, but be careful when using it before the end of your trip, as the unit may accumulate some moisture itself, which will evaporate inside the car when you park it (thanks to sweber for the improvement).
- Avoid using the recirculation mode on the heater, unless the A/C is on. Moisture will accumulate in the car much faster, as fresh air is not brought in from the outside, but water vapor is brought in from the lungs of the driver/passengers.
- Drive a long distance with the heater maxed and directed at feet once in a while to dry out the constantly wet places in the interior.
- Change the pollen filter if you haven't done that for a year or longer. A clogged filter might inhibit the air circulation and accumulate moisture.
- Clean the inside of the windshield as good as you can (preferably while the temperatures are not freezing yet). Use alcohol, a dirty windshield attracts moisture.
- If you use carpet floor mats - get some rubber ones for the winter and clean the snow/water off them once in a while. Carpet mats accumulate moisture when the snow from your shoes melts and often don't have the time to dry out.
- Avoid bringing snow into the car altogether. You can't do this completely, but clean off your pants and "clap" your shoes before bringing your legs inside.
- Leave water absorbing materials or a commercial dehumidifier in the car overnight (especially next to the windshield) to absorb extra moisture. Cat litter is great for this (stuff some into a sock), so is salt. Newspapers also work if you're in a pinch (and if you still have any for some reason o.O).
- Use over-the-counter chemicals intended for reducing window misting. Less misting = less freezing.
- When your trip is done, open all doors to ventilate the interior for a couple of minutes at least. This replaces the humid air inside with drier air from the outside and reduces the inside temperature, which reduces evaporation. You can make this quicker by starting sooner - open all windows before you start parking.
- If there is no time for ventilating the car - turn the heater to the lowest setting during your last minutes of driving on maximum power setting. This will reduce the interior temperature and reduce evaporation.
- Alternatively, leave the windows slightly open when you park the car if it is safe. This helps air circulate and less of the evaporated water ends up on your windshield. Just make sure that it's not raining or snowing (or use wind deflectors).
- If the freezing on the inside of the windshield is extreme and practically impossible to avoid - make sure your heater system is not faulty. Leaks in the heater core can introduce moisture to the interior even when parked. Other places where moisture can get in (sunroof, water drains) should be inspected as well.
That's what is known to help us poor people living in countries with cold winters, combine them and your problems should be gone. Usually rubber mats, avoiding to amass mountains of snow inside and ventilating the interior for a couple of minutes when you park is enough, the rest are for when you have some serious interior dampness problems.
However what I haven't understood yet myself is why some cars are more prone to inside freezing than others - some people appear to be doing none of this and are not experiencing inside freezing. Might have something to do with natural ventilation of the car or superior isolation. Hopefully someone else can answer this.
To avoid freezing on the OUTSIDE of the car, there are two ways I know of:
- Park it where less moisture and snow deposits on top of the car - under roofs, in garages, next to walls, etc.
- Cover the car up. There are special full body covers for sale, but they are impractical and often pointless. What is more practical is covering the windshield only. Anything works - cardboard cover, large towel, thicker bed sheet. Just hold it in place with the wipers and it will prevent the windshield from freezing over, saving you some scraping (which slowly scratches the glass with the tiny pieces of dirt on it, therefore is harmful besides being tiring)
Obviously all of this can be prevented by parking in heated garages, but that is not an option for most of us. If anyone knows more ways to avoid freezing on the inside and outside - add your own answer, I would like to know as well.