The 'best' way to code layout is using divs, not tables. Tables should only really be used for tabular data like a timetable. All layout should be done using a css stylesheet which will define how all the page elements (divs, spans, lists etc) will appear. There are a number of benefits to using css for layout rather than tables:
1 - less code, making it easier to update pages
2 - 1 css file for layout so in theory you can chnage the layout of an entire site simply by chnaging the css file
3 - Logical source order, better for people using screen readers
4 - Easy to create different versions of the site for different devices. All you need to do is create a separate css file for each type of device you want a different layout for e.g. printer, mobile phone
You mentioned iframes and I guess you're using these for templated items. 2 alternatives would be to use SSI (server side includes, should be supported on any host) or php/asp includes if your hosting allows. Both methods allow you to 'include' files in a page, for example you could have 1 file containing the navigation and use SSI or php/asp includes to include the navigation on every page of your site.