In pm_shared.c in the HLSDK, the function "void PM_WalkMove ()" moves a player along the ground.
If I interpreted the code correctly, the way players move is like this:
1. Lift the player up a few units (stepsize).
2. Try to move the player forward.
3. If it worked, now try to move the player back down a few units (stepsize).
4. Go to step 1.
When you're sliding a box along the ground, it's not moving up over steps like players do. I'm not sure how to solve your problem, but I hope this gives you some insight into the problem.