Esa era la solución: la de baccxus; de todas formas, gracias a los demás también. Ahora ya las dos capas se quedan dentro del contenedor y éste se expande con el contenido.
 
No obstante, y no se porqué, en otra web que estoy haciendo, tengo dos capas con float a la izquierda y a la derecha respectivamente dentro de un contenedor y si se expande con normalidad. Mirando el código css de las capas no encuentro diferencia alguna al código de la web que daba problemas.  
Código:
  #contenedor { 
   text-align:left; 
   width:680px;  
   margin:auto;
   background-color:#FFFFFF;
   background-image:url("imagenes/textura.png");
 }
 #lateral {
   float:left;
   width:120px;
   background:#FFFFFF;
 }
 #cuerpo {
   float:right;
   width:544px;
   padding-right:8px;
   padding-left:8px;
 }
  ¿Es muy extraño verdad?