There is something inherently wrong with CSS tables for layout. There are also technological hurdles.
When using RAW CSS WITH NO FRAMEWORK laying shit out is hard at best. Which is why you should use one of a multitude of frameworks which give you css grid layouts. There are also frameworks which apply css 2 table cell properties to layout your page using tables without tables.
When using HTML Tables, you are guaranteeing that your site will NEVER scale gracefully with lower resolutions and mobile devices without CSS (dying). While sometimes you do want to say "Vertical" or "Horrizontal" box, on some devices neither helps. You need wrapping, text area resizing (and i dont mean textarea tags) etc.
So in the end of the day: Don't do Table-based layouts. BUT ALSO DON'T REINVENT THE WHEEL. I think it is an equal sin to hack up a new layout css for every page/project as it is to hack up a new webserver for every little 2-page static html server.
From a technological perspective, tables don't make for good layout containers. They don't respect their width/height properties like you hope they would. You need to account for the dreaded cellpadding and cellspacing defaults, child borders/margins, etc. Avoid it. Trust me, a bigger headache in the long run.