Quando imposti un div come float (left e middle) lo rimuovi dal normale flusso del documento e lo sposti su uno dei lati.
Per questa ragione sia con IE che con FF visualizzando il tuo esempio vedi il container come fosse una semplice riga blu, perchè non ha dimensioni verticali, dal momento che i suoi contenuti sono stati rimossi dal flusso e dal momento che non hai impostato alcuna dimensione verticale al container stesso.
Per cui è normale che allungando left il container non segua l'allungamento, caso mai non si capisce perchè FF lo faccia (sicuramente c'è dell'altra roba nella tua pagina).
Prova a vedere se inserendo un clear nel punto giusto il problema scompare, in questo modo:
<div id="container">
<div id="left"></div>
<div id="middle"></div>
<div style="clear: both;"></div>
</div>