The reason not to use tables is that they go against web standards, which say that tables should only be used to display tabular data. When you place a table on a page it has to be interpreted as one, which in a screen reader or similar technology means that the tags are read out to the user. This can be confusing when you're not expecting to hear tabular data, and causes frustration.
Instead of tables, you should try using divs. A div tag is treated purely as a layout device, and is not read out by screen readers or other devices. In your case, I think you need to start by removing all of your position:absolute rules. Then replace your table with a single div that wraps all of your content. Give it an id, let's say 'wrapper', and apply the following css:
CODE
div#wrapper {
width:922px; /* set to your content width */
margin:0 auto;
position:relative;
}
What these do is set the wrapper's width (obviously!) and set the side margins to automatically divide the remaining viewport between them. The position:relative won't affect the position of this div at all, but it will mean that if you decide to use any absolute positions inside the wrapper they're zero point will be the top left of the wrapper div rather than the viewport.