Why does IE put NBSP into empty div/table tags?
Here comes a really professional answer. I don't know why. Surely it takes that bit longer to put a conditional statement that if there is an empty tag, fill it with somet. Surely, it would be easier to say don't fill. But then again, MS never do things by half.
The Work Around
There may be a Javascript or even more simpler way than doing it this way, but so far I have not come across it. The only way to stop IE from rendering the div or table to the height of the text in which it contains (if it is empty, MS puts in a non-breakable space, therefore renders at the size of the body text) is to create a 1px*1px GIF with an index transparency of white and the background of white. This makes it a clear square. It is still classed as an object, so by putting <img src="images/clear.gif" alt="" height="1px" width="1px" /> it renders whatever div/table cell at whatever height you specify (below the body text size).
If you don't want that div or table/cell to be rendered, then it is even easier, use CSS and set whatever element it is to display: none;

