I've already worked around this behavior in my application but I
wanted to put this to the list and see if there's a more graceful
worksound than the one I had to implement.
As many of us know, IE's float handling is broken in myriad ways. I
discovered one I had not yet seen (though from research it's come up a
number of times before on this list and elsewhere) this past week, and
spent some time putting together a test/demo page:
In a nutshell, IE6 and 7 both treat float rule 8 (floats must go as
high as possible)  as more important than rule 5 (floats cannot
move above a the outer top of a previous block or float) . In my
case, I ended up wrapping each "row" in yet another div, essentially
duplicating the code in a table.
I researched this for about 5 hours this weekend, looking for
definition, examples, and most importantly, a non-markup-based
workaround. I didn't find one, so I'm throwing it out here to see if
anyone has an idea.
IE7 information -- http://css-discuss.incutio.com/?page=IE7
List wiki/FAQ -- http://css-discuss.incutio.com/
Supported by evolt.org -- http://www.evolt.org/help_support_evolt/