Le principe de hauteur et de verticalité est souvent problématique en CSS du fait de certains navigateurs non respectueux des propriétés récentes.
Il n'existe pas de solution miracle, et c'est normal : les blocs <div> ne sont pas des cellules dépendantes les unes des autres. Il faut adapter une technique à ses besoins.
A noter qu'à l'heure actuelle, et en raison des déficiences ou obsolescence de certains navigateurs, la solution la plus robuste demeure l'emploi de tableaux de mise en page, à condition qu'ils soient bien conçus et non enchevêtrés.
La solution la plus simple à mettre en oeuvre est celle des "colonnes factices" ("faux-columns") dont le principe repose sur une couleur de fond adaptée : http://pompage.net/pompe/colonnesfactices/