Haha oh well. Did you read the article or only check the code?
vec_set(temp,vector(my.x,my.y,my.z-150+my.foot_height));
c_trace(my.x,temp,IGNORE_PASSABLE | IGNORE_ME | USE_BOX);
if(!trace_hit) vec_set(target,temp);
The temp vector obviously is set 2 lines before your questioned vec_set instruction. The idea is simple, we declare out trace target "temp", then we c_trace and should we not hit anything the target vector would be the nullvector, thus we overwrite it with our desired position (the content of temp). The reason for this is that we only want to have a vector somewhere below the player's feet, in fact we are normally only interested in the z-component of the target vector.
Yes, target and hit.x are basically the same vector, using target, the normal vector and so on is just the old school way of doing it (which I prefer) because back then in the days there was no hit struct.
vec_for_min is well explained in the manual, as pretty much every other lite-C instruction:
http://www.conitec.net/beta/vec_for_min.htmEDIT: You have changed/ deleted your old post, so my answer may seem somehow off to other users.