probably some sort of algorithm that basically just keeps track of how much time it has been rendering to get to that specific point, and how much rendering is left, which is why it can be quite a bit off, and slowly becomes more accurate. Could perhaps use a average of time perpixel, etc etc. Theres little small ways to guestimate the time it'll take, but its never fully accurate.
I am curious to see if you can render all the high settings with a small res picture (like 640x480), and then be able to accurately calculate how long it would at like 1920x1200 or something.