a cosa serve height:auto!important;?
Serve per dare priorità ad una dichiarazione.
Viene utilizzato maggiormente come "trucco" per IE, come nel caso del min-height non supportato dal browser microsoft.
codice:
#box{
min-height:300px; /* IE non lo supporta */
height:auto!important; /* Per i browser che supportano min-height, è prioritaria rispetto alla prossima dichiarazione */
height:300px; /* La vede solo IE che in ogni caso interpreta height come fosse min-height */
}
In questo caso quindi sfruttando due bug di IE(!important ed height) si riesce a far capire ad IE che deve dare un'altezza minima di 300px all'elemento.
Nel tuo caso però con height:100% credo sia superfluo, in quanto anche Mozilla Firefox Opera sembra adattino l'altezza all'aumentare dei contenuti.

In conclusione però non credo che lo scopo originario di !important sia quello di "imbrogliare" IE, anche se sinceramente non ne vedo un'ulteriore utilizzo diciamo così, più nobile.