Exactly--tables (CSS or otherwise) are meant for _tabular_ data, like you would see in a spreadsheet, not page layouts. And if you want to use a table, the semantic way is to use a <table> tag, not a <div> or something else disguising as one.
No, CSS tables are not meant for tabular data. The fact that something is tabular data is semantic information, not style information. Markup should denote tabular data. CSS should denote display style. There is nothing wrong with having CSS that says "lay this out in the style of a table" while the markup shows that it isn't semantically a table.
I love you tim2. Or maybe I'm just fed up at people who never have to deal with cross-browser design getting uppity about someone using a table tag to ensure consistent display.
Either way, you're right. Lack of cross-browser consistency in CSS display support (vertical centering anyone?) is what makes implementing tables in CSS a living nightmare.
One thing I've always been curious about is why the same people (not referring specifically to you, illicium) who decry the use of tables for layout use unordered lists (ul) and definition lists (dl) for their forms. If a table should only be used for data, then so should an unordered or definition list.
It's as if they still need a tag for layout, but just can't bring themselves to use the table tag and resort to other markup to accomplish essentially the same thing.
It seems like it's a matter of fashion over function (and reminds me somewhat of the "cool kids" dynamic in music, clothing, gadgets, etc.).
Disclaimer: Yeah, so I'm using divs for mostly everything now, too.