If you're getting redirected to the wrong place, then you have some plugin or some other piece of code that is messing up the query loop before the comment code. The comment code expects the query to be still in the state it was when the post ended.
A lot of possible things can do this. The most common would probably be any badly written "recent comments" listing.
Somewhere on your page, there's a reference to the post that it's redirecting to. Like the last comment on a recent comments list happens to be on that post, sort of thing. The query is being used incorrectly by that bit of code and leaving it in that state. Thus, when the comments code runs, it cannot tell what page it's on anymore, because the other code left the query saying that it was on some other page.
There's no easy fix. Remove that bad code messing with the query or fix it. No other way, unfortunately. Note that this same problem can result in other more severe consequences, like comments going on the wrong posts or other oddities. It's a common problem with old code and badly made plugins.