Yeah, creating a 2d physics engine like this wouldn't be too hard, but it definitely would be hard if you don't have enough knowledge of DBPro.
Uhh generally, when you're building a 2d level, the collision data is totally separate from the pixel data. Say you had a picture that looked like those mountains - no background. The pixel representation of that has jagged edges, it's just an approximation! As such, it's hard to make sense of what's touching what.
If I had to make a physics engine like this, here's what I would do:
(1) have a distinction between *attached* and *detached* from the ground. Attached=sliding, detached=in the air
(2) Work out a point sliding along a line, with any slope, and any starting velocity (including gravity)
(3) extend this to line segments - fall off when you get to one end
(4) work out sliding from one line segment to another
(5) load information from a text file (or something) of line segments, creating a slope
Then the main backing would be done, and you would just have to handle putting a background on it.
Still, doing that would be lower quality than using box2d. Creating an accurate/quality physics engine requires a lot of math and optimization stuff :\
Uhh a knowledge of 2d math wouldn't hurt either - rotations, vector math, and the like. You might already know it but I thought I'd mention it. (for example, say your person is resting on a line given by <x1,y1> <x2,y2>, what angle do you give him so that his board is resting on the surface, and he is pointing upwards?)
[edit]
where you'd run into trouble with making your own physics engine would be the rotating player - nose grinds? tail grinds? Hitting his head on the ground? OFC with physics knowledge that might not be too hard to do... but I'm not too sure :S