Eine Website mit Divs zu machen ist genauso falsch wie mit Tabellen. Deshalb soll man Tabellen auch nicht mit Divs ersetzen.
Vielmehr kommt es darauf an, eine Seite möglichst semantisch korrekt aufzubauen. Hierzu bietet HTML für fast jeden Zweck spezielle Elemente an, die man sinngerecht einsetzen sollte, siehe HTML-Elementreferenz.
Eines dieser vielen Elemente sind Tabellen. Sie dienen der strukturierten Darstellung tabellarischen Inhalts, also z.B. eine Adressliste, ein Terminkalender o.ä.
Ein weiteres Element ist der Div (division). Er dient dazu, größere Bereiche zu gruppieren und darzustellen.
CSS wiederum dient der Formatierung und Positionierung aller Elemente.
Wenn du dir dieser Logik bewusst wirst, dann wirst du auch verstehen, weshalb man eine Seite weder mit Tabellen, noch mit Divs macht.
Und was dein Spaltenlängenproblem betrifft: Zugegeben, da gibt es keine Standardlösung. Man kann sich aber mit Faux Columns behelfen.