What really happens is somewhat similar to what ^^blaster mentioned ...
They treat the connected period as one session - take the total usage during that session and divide it by total connected time - then they bill u according to average amt. of usage that lies outside free period (12-8am)
e.g. if u r connected from 11pm to 1am and download only 10MB during 11pm to 12am but 70MB from 12am to 1am - ur total usage for session is 80MB and total time is 2 hrs (so 40MB per hour)
out of this only 1 hr. lies in free period so 40 MB are free - the other 40MB lie in non-free hours so u r billed for 40MB !!
(it works the other way too - so if u download 70MB from 11 to 12 and 10MB from 12 to 1 - u'll still be billed only for 40MB if it's the same session !!! )