try the overwater function in the function library for getting if target is in water
as for aircraft check getpos target select 2 is not greater than say 1 metre
speed checks for ground vehicles
if its navigating terrain do a constant unit ready check but how to know where he is suposed to be going i cant think, look into game code or commands in the comm ref, i'll ave a think about it tho
Ron