I'd use the touch function to set the brush's velocity to the velocity of the player that touched it and set the brush's think function to dampen it's velocity gradually so it slides to a halt due to friction or air resistance once there is no longer a player pushing the brush.
void() ragdoll_think =
{
if (self.velocity_x==0.0||self.velocity_y==0.0||self.velocity_z==0.0) return;
self.velocity*=0.9;
if (vsize(self.velocity)<=10) self.velocity='0 0 0';
self.nextthink=time+0.04;
}
void() ragdoll_touch =
{
self.velocity=other.velocity;
self.think=ragdoll_think;
self.nextthink=time+0.04;
};
self.velocity*=0.9;
if (vsize(self.velocity)<=10)
You should try a couple different values for those two lines to get the exact effect you want.