Dipende da cosa intendi per "si ingrandisce". Un <div> è per default un elemento block-level, quindi ha le stesse caratteristiche di tutti gli elementi block-level:

1. La larghezza, se non impostata esplicitamente, è tale da occupare sempre per intero l'elemento che contiene il <div> (sia esso un altro <div>, un

, un <h1>, ecc. oppure lo stesso <body>).

2. L'altezza, se non impostata esplicitamente, è tale da racchiudere esattamente tutto il contenuto del <div>.

Nel tuo codice vedo che il <div> #main ha larghezza 80%, mentre #news non ha specificata nessuna larghezza. Quindi, per default, #news sarà largo il 100% dell'elemento che lo contiene, ovvero #main. Se la finestra del browser (e quindi #main) si allarga, si allargherà anche #news.
L'unica cosa che mi lascia un po' perplesso nel codice è quel position: absolute del #main. Inoltre, e questo non dovrebbe essere affatto corretto, hai inpostato l'offset (lo scostamento) di entrambi i <div> usando delle proprietà opposte tra loro (se usi top, non puoi usare bottom e se usi left, non puoi usare right). Questo perché il "punto" da cui viene calcolato lo spostamento del box posizionato in modo assoluto (o anche relativo) è diverso a seconda che utilizzi ad es. left o right.