Puedes hacerlo usando simplemente display:inline-block; Te dejo una muestra:
CSS
Código
<style type="text/css"> body {text-align:center;} .div1 {background:#555; display:inline-block; margin:0px auto 0px auto; padding:10px;} .div2 {background:#010; display:inline-block; padding:10px;} .div3 {background:#FFF; width:500px;} </style>
HTML
Código
Como ves, solo el div3 lleva un tamaño fijo y los otros se van a adaptar a el. El margin y padding y text-align son solo decoración.
PD: Creo recordar que una versión de IE (7 o 8) no soportaba inline-block pero puedes buscar un "hack".
PD2: Dijiste altura...yo lo hice con anchura.. porque la altura se adapta sola dependiendo del tamaño de los elementos de dentro... vamos que es automático.
Saludos