It looks like that to know if a thread have been readed from the user or not, you are using the time of user last visit.
I would love if you where able to do what ibp does, tracking the view of every single topic.
When i click on some links to thread, i'm redirected to the one of the last posts even if i've yet to read the first post of the topic. That is not cool =)
I believe this is how it works too. I've read the first page of a 2-page thread, only to see that the thread is still unread and only becomes read when I view the second page.
This way of marking threads read is much better as I've accidentally (or purposely) closed a window without finishing it. Much more friendly.