Añade al #pie "clear:both;" y a #cuerpo "overflow:auto;"
Cita: creo que lo ideal seria que #cuerpo
tome el alto de #lateral, o de #principal (el que sea mas alto)
Y si lo que pretendes es una estructura de "falsas columnas" o columnas equilibradas" mira a ver si este ejemplo te es útil:
http://css.devillasbuenas.es/2columnas.html
Un saludo