HTML must be semantic. Create your HTML structure like it meaning not it appearance.

Use CSS to all positioning. Remember that float, position, z-index and clear are your friends.

Avoid specific browser hacks. In fact, almost all can be done exactly for IE9, Chrome, Firefox, Opera and Safari. Near we have IE8 (only without CSS3 things). Your hard way will be IE7, but it isn't so much away from IE8.

Choose your browsers by audience and graphics like this. I don't care about IE6 anymore and I'm stoping to care about IE7 too.

Using table isn't a crime. Tables was created to tabular data, i.e. grids, lists with more than 2 columns, etc.

Using table is a crime. Don't use it for your layout structure, like menus, headers, footers, etc.

Using div also can be a crime. "Tableless" doesn't means "Divmore". Your markup must be clean and semantic ever. Dozens of divs are so bad as tables could be.

Read W3C Specs and understand the web standards like you understand your own name.