I'm guilty of posting off-topic.

Oftentimes I respond to a comment someone has made in a previous post that might or might not have much to do with the original subject. But really, all it takes is for someone to jerk it back on topic.
I don't see how going off-topic can be prevented. It happens in real life discussion ... people digress ... then go back to the original subject.
It seems at present there just aren't enough people who are willing to put the time and energy into keeping some of these discussions going. Not enough "iron" anymore I guess. Or enough energy or interest.
I know we have people posting who are good thinkers, intelligent and articulate. Perhaps it's that we've already gone over many of these things already .... same people posting the same things and responding to the same issues.