Ok ill try and give you a hand ill just try adn flesh out teh situation first of all so we both know if im on the right track.
Your lookign at 0,0,0 and you camera say starts at 10,0,0 and when you go forward it takes say 1 unit of the X so it would go to 9,0,0 then 8,0,0.
There for when you get to 0,0,0 a push forwrd would mean it goes to -1,0,0 then -2,0,0 whilst still looking at 0,0,0. So whilst the effect is that you now move away from the object you are actually still traveling in the same direction as before.
If the abouve is correct that what you want is at some point either on the user input or probally better whin the camera movment routine when x (or y or z) > 0 (or better > lookat x) x *= -1. This will instantly make any negative posative again, you cant do it to a whole vector because if the x is negative but the y isnt then the x would become posative and the y negative. so you would need to do each dimention seperately.
The end result of this would be as you press forward you would approach the lookout location untill you hit it and would go no further