You can easily do this with AddPlayerBodyForce.
Create a timer that has something like this:
void Drag (string &in asTimer)
{
AddPlayerBodyForce(x,y,z,false);
AddTimer("", 0.1, "Drag");
}
Change X Y and Z to how you want the character to be pushed. For example, if you want him to be dragged forward (along the Z axis, put something like)
void Drag (string &in asTimer)
{
AddPlayerBodyForce(0,0,3000,false);
AddTimer("", 0.1, "Drag");
}
When the player reaches the end area for the destination, just use the RemoveTimer() function.
Also, experiment with
MovePlayerHeadPos(float afX, float afY, float afZ, float afSpeed, float afSlowDownDist);
and
FadePlayerRollTo(float afX, float afSpeedMul, float afMaxSpeed);