The W3C recommends using CSS2-based layout instead of the traditional
table-based layout.
The problem is that while some things are much simpler with CSS 2. (for
instance, the floaty on this page.), some simple table-based layouts
are incredibly hard. (especially to get to work on all browsers)
CSS positioning is (IMHO) complicated. I was not able to get the complete hang
of it. You can play with it, or try to consult the
CSS-d
mailing list, until it seems right.
(just don't forget to test on all browsers).