Reasons include:
1) The person used the SEARCH feature and found thread(s) that interested them. Mistakenly they forgot to check the date and make their post. Easily done and we've all done it. It's easier done when you're new because when you've been around a while you recognise people posting so a whole thread with no one you recognise (or if you've been around long enough all "oldies" posting) it gives you a bit of a heads up that it might be an old post.
Posting from tablets/phones/apps can also make this easier done because you don't have as big a screen so the post dates are more obscured
When the original thread failed to get an answer and the problem is relevant to the new poster, it can be easier to revive an old thread to see if a solution has since been found (or to give a long awaited insight if the thread is obscure enough in subject), rather than start a new thread. Old threads can be a very useful source of information frequently coming up in Google searches. Where this is the case I can't understand some peoples concern over 'zombie threads'.
Where the OP was asking which body was best 3 years ago then the thread is indeed of no further relevance, as these things change on a much quicker basis! Ideally the forum software would give a pop up message to point out the age of the thread which would have to be accepted before writing the reply.
Frequent visitors may just use the 'new posts' listing to see what's new, so would only come across old posts if someone else has revived them. It's not too uncommon for several replies to be made before the age or the OP is spotted.