El problema es la posición absoluta de "contenido", además que es incomprensible ya que tienes el header en posición relativa.
Digo, la causa es que la position:absolute, saca esa caja del flujo normal del documento y en consecuencia los otros div no se dan por enterado que existe.
Lee esto:
http://www.librosweb.es/css/capitulo...onamiento.html
Como sugerencia te diría que no uses position:absolute ni para "contenido" ni para el footer.
Saludos