[font=georgia]You'll find a lot of good information on how to use CSS for layout at http://glish.com/css/.
But you also asked why. There are, and always will be, browsers in use that do not understand CSS. But there are also browsers that do not understand tables. And to make matters worse, there are browsers that understand tables but that present them to the user in alternative ways. If you are using a screen reader on a table of data you need some way to keep track of where you are in the columns and rows. And an increasing number of screen readers are presenting what the reader takes to be the headings with each cell. And this really makes a mess out of things when you use tables for layout.
We still have to deal with the non-CSS browsers but that's an easy one. The proper way to make a web page is to start with an HTML 4.01 Strict (http://www.w3.org/TR/html4/) page that works. Use your mark up properly and put the menu at the bottom of the page. People listening to your web site do not want to have to hear the same menu every time they hit one of your pages. Only once you've done that do you add CSS for fonts and colours and layout. And behold, you have a page that will work on every browser that there is.[/font]