Code:
/* sample only: non-functional */
ENTITY* eSrc;
ENTITY* eTarget;
//...
VECTOR vSrc;
VECTOR vTarget;
VECTOR vDir;
//...
vec_set(vSrc, eSrc.x);
vec_set(vTarget, eTarget.x);

// ...
// drop the z of both VECTORs
vSrc[2] = 0;
vTarget[2] = 0;
vec_diff(vDir, vTarget, vSrc); // subtract the src from the target and store it in dir
vec_normalize(vDir, 1);	// normalize it
vec_scale(vDir, time_step); // scale it like a distance
// apply it to the ENTITY which should move towards vTarget / eTarget's pos
c_move(eSrc, NULLVECTOR, vDir, IGNORE_PASSABLE | GLIDE);