The concept of off/on topic in threads is really really difficult. The solution I've been most successful with (and I'm pre-Internet chatforum moderator old) is to have the original poster decide when the discussion that follows is on or off topic.
Else you end up in situations where the thread starter is fully ok with the discussion and a moderator starts deleting posts.
(In this case it should be somewhat easy for moderators to see if it's the thread starter that Reports to Moderator with "off topic" as reason)
This is not fair to the people responding to a topic, IMO. People who reply to topics should know that if they are on-topic and they follow the rules, they will not be censored. Also, it is very annoying for reply-writers when they write long, detailed responses and then the topics become off-topic and useless.
Maintaining perfect on-topicness is difficult. In the future, discussions may be made threaded instead of flat, which will basically be like having a system that automatically creates new topics when people are posting off-topic things (in many cases).