leva il position:absolute e se il div si trova in fondo verrà mostrato in fondo.

ora mi accorgo che hai tutto in absolute, non è il miglior modo di disegnare un layout, se non si sa quel che si fa possono sorgere svariati tipi di problemi, ad esempio non credo ci sia modo per essere sicuri che un layer venga subito dopo di un altro non conoscendone le dimensioni, cosa invece del tutto automatica con comuni div.

nel tuo caso, ma non so come funzionerà perchè dipende da molte cose, potresti provare a togliere l'absolute e invilare il div dentro il layer principale della pagina in fondo.



leggendo il resto del messaggio credo possa esserti utile questo la struttura della pagina te la fanno loro, usando quel che è giusto vada usato in questi casi, cioè float mentre il position:absolute si usa per avere quello che usandolo a spropositio diventa un inconveniente, cioè sovrapposizioni.

se poi ti serve che anche in caso di contenuti corti il footer stia in fondo alla pagina, allora ti serve usare un min-height, in questo caso chiedi e ti si dice come fare, perchè ie non lo legge ma legge height come min-height e occorre qualche aggiustamento per avere lo stesso comportamento con tutti i browser.