Depending on how the waypoints are setup, you can use ActionForceMoveToObject(object oObjectToMoveTo, int iRun, float fRange, float fTimeOut)

Use your waypoint as the object, set iRun to TRUE (if you want him to run) or FALSE (if you want him to walk), fRange is the distance (in meters) from the object your NPC will stop walking, and fTimeOut is the amount of time to try to reach the object before jumping to the point.

All you need to use is ActionForceMoveToObject(oWayPoint), this will make your NPC attempt to walk to the waypoint for 30 seconds before teleporting to it.

If you don't want him to teleport, but just fail to move to the point and stop, use ActionMoveToObject(oWayPoint).