I have tried very hard tp adopt the industry recommendation to trash my tables and use divs. I have studied and experimented with float, positioning, margins, dimension and, more recently, _css hacks. I've made a concerted effort to use point units and em (relative) units for font size declarations.
In return I have had more display defects, more inconsistencies between browsers and more work to do just to make things look right.
For example. I have elements set to float acroos the available width that contain text. the text is set to 12 pt. Ooops, on Firefox, 12 pt is too big, so I used the ie hack _font-size to set IE to 12pt and others to 10pt. OK. Then, I got a new workstation with excellent reolution and bumped up my screen resolution. I'm old so I cannot see the text well so I bumped my system fonts up to large. This is perfect for me, provides maximum realestate without having to squint to see my email.
Oops! Now my elements described above wrap because the text causes them to exceed their available width. I am in the process of changing all those font-size declarations to pixels. There, done. Not w3c recommended but then w3c recommendation didn't work for me, did it? I also have some floated elements inside containers that should work pretty consistently. However, they are getting bumped here and there by discrepencies between browsers, platforms, font-size, image size, etc. If I had use tables instead of margin, this wouldn't be an issue. by definition, things will line up. Guess what I have to do for my next maintenance release? Convert my divs to table so they don't float funny.
I think the spec for float is fatally flawed. I merely want the ability to line things up in a row and let them stretch appropriately to the available screen. Float doesn't really do this very well.
Perhaps I will learn a "trick" along the way and find divs more useful for layout. For now, I like them for containment. If I have a block of text that is can be treated as a block, I love a div. If I need to stretch something across the screen in two columns, tables.