Ive never tried this but if you check the "normal" variable after a c-trace
in the forward direction, you can get the angle of the surface ahead of you with
some processing like vec_to_angle(tempVec,normal); or something.
If the (tempVec) x or y angle is to steep (say > 45 degrees),
then block the movement somehow.
Hope this is of some use.