By the way, I hate myself. I KNEW that using vector(5,0,0) was ALMOST there but not quite, as you have to add the entity's position to it as well, as you did. I just didn't catch it. Sorry about that. Good news is you solved the problem yourself, which is one of the best feelings in the world. So--you're welcome for letting you fix it on your own.

So I'm gathering that you are using this trace for a bullet to check if it is about to hit something. I don't know exactly why there are still problems, but my first question is why aren't you just using c_move and then performing special bullet-like behaviors when the bullet hits something (EVENT_BLOCK, EVENT_ENTITY, etc)?