Il problema è che il div con classe container contiene la colonna di sinistra fluttuante a sinistra e, pertanto non si adatta alla sua altezza.
Se inserisci un clear : both al footer invece, sì.
Il problema del background puoi risolverlo riempiendo di bianco il centro della gif.
Un'altra vittima del float:left
PS: un ultima cosa. Quando sottoponi il tuo codice all'attenzione di qualcuno presta attenzione all'indentazione... per fortuna c'è Firebug.