It seems as though in order to get the most predictable results out of a SharePoint redesign, you are almost all but required to use tables. I didn’t expect to rewrite all SharePoint pages or web parts where tables appear, however, it seems you need them in order to force certain items to behave properly.
I haven’t completely confirmed this notion but had planned on starting from the “minimal” base page and seeing if I can just recreate the original SharePoint design with the least amount of tables (the MS minimal master page BTW is TOO minimal and you end up adding a lot of things … please read on). Well, I’ve officially given up.
For starters, do yourself a favor and opt for Heather Solomon’s base master page and not Microsoft’s. Hers is more complete and will work for many site templates, the non-publishing pages, etc. Plus, it’s better documented. Second, don’t try to get all fancy and try to manipulate the design of the page with strictly div tags. It is futile. Why? For one, you won’t eliminate all of the tables unless you plan on redesigning each aspx page, form, and other items in the default site template manifest. Two, in certain cases it just won’t work.
Take for example the Design Mode Console. If you use this:
<wssuc:DesignModeConsole id="IdDesignModeConsole" runat="server"/>
you must put table tags around it.
The brilliant minds who developed/designed this one decided that it would start and end with table rows. “What, what, what?!”, you say. Uh, yeah. So this means you need table tags around this control in order for things to display correctly. However, if you use this:
<asp:ContentPlaceHolder ID="WSSDesignConsole" runat="server">
<wssuc:DesignModeConsole id="IdDesignModeConsole" runat="server"/>
</asp:ContentPlaceHolder>
you are fine. I guess the contentplaceholder has the table tags in it. The MS base master page doesn’t have this control in it, however, you NEED it to edit a page! WTF! It took me a really long time to figure out why this wasn’t appearing:

and then once I put the control into the master, another day to figure out why things weren’t displaying properly.
There are times, however, where I can see using a div tag or two. Especially if you can only achieve your design effect by using z-index to layer items or have them overlap in some manner. I recently did this with the “View all content” portion of the Quick Launch area and while it was a BITCH to get working, it did look nice when it finally did (I did this only on non-admin pages, mind you).
UGH. Seriously MS guys, couldn’t you make branding just a little bit easier seeing how no client wants the OTB look and feel? Encapsulation can apply to STYLE as well (definition: “encapsulation is the inclusion within a program object of all the resources need for the object to function” or “hiding of design decisions in a computer program that are most likely to change, thus protecting other parts of the program from change if the design decision is changed“)! Am I the only one who has thought of this? I can’t be. I just can’t be.