Unfortunately, you're unlikely to find a satisfactory solution with sufficient power output. For example, consider the heat given out by a domestic fan heater on its 'low' (1000W) setting. That's probably only about the same as a good car heater blows onto the windscreen, so it tells you that you require something like 1000W of heat output to clear your screen efficiently. Getting 1000W of power from a 12V circuit means drawing a current of over 80A, which will blow fuses or melt cables.
A typical 12V car heater will provide only about 75W so you'll never get a great deal of heat from them. However, some are more efficient than others. In particular, ceramic heaters use the limited power available better than other similar heaters. You
might get an acceptable result with this, but I certainly wouldn't want to rely on it in very cold weather:
http://www.maplin.co.uk/module.aspx?ITAG=FAQ&M oduleNo=48775&doy=28m12#faq
The most common cause of heater problems is insufficient coolant. Check your coolant level and, if needed, top it up with plenty of anti-freeze. (It's cheap in Wilkinson's stores and it conducts heat far better than water). Otherwise, you'll need to get your coolant system flushed through or get a replacement heat exchanger from a scrap yard.
Chris