E' normale, i float interrompono i normali flussi dei blocchi, posizionando un nuovo blocco flottante al di sopra di tutti gli altri, come accade in position: absolute.
Con quest'ultimo si può fare molto, dichiarandolo interno ad un altro blocco.
Ma tu div.news lo dichiari elemento esterno a tutto l'intero sito, mentre per fare ciò che vuoi tu, sevi dichiararlo interno al contenitore di testo: div#content div.news { .. } questo dovrebbe a rigore spezzare il flusso.