Hmm.... I'm not sure what exactly the "hold" waypoint does, but it may not do what you think it does. Anyway, does this sniper ever need to move again? If not, then put this in his init field:
this disableAI "move"
That will keep him from wandering around on his own. Here is another quirk though: he
can still move, if he is "engaging an enemy". Oddly enough, if there is a group of units, the leader will stay still and make the rest of his group engage the enemy (meaning, walk out towards the enemy, try to flank him, etc). So if this sniper is in a group that he isn't the leader of, you also need to put:
this disableAI "target"
The sniper will still be able to shoot at guys on his own (to disable that would be to disable "autotarget"), but he won't move out to engage the enemy. Even if he isn't in a group, it may be a good idea to put this in his init field still.
--------------------
Just for your own info: alternatively, you could put this in his init field:
doStop "this"
Which would allow him to move again later on. 'dostop' is good for making guys in the same group stand all out of formation around a base or sumthin. However, when the enemy is spotted and the group tries to engage the enemy (as above), then all the guys who were stopped by 'dostop' will just move in to attack the enemy. Again, this is good if you want to do things like put half of a group in a tent, and another half on some waypoints patrolling the base.
But for what you want to do, you should definately use the disableAI method, since it will literally freeze the unit exactly where he is standing.
Hope that helps