You are talking about two differnet things here. IK and ragdolls. Let me explain them to you:
Ragdolls,
Each Dynamic object is lined to a bone in the skeleton animation system whereby the rotation matrix and postion of the bone is derived from the dynamic object. Each dynamic object is linked to its previous by joints (either ball-socket, or hinge) to maintain human anatomy. As for ODE and ragdolls, the problem of two geoms connected by a joint do not collide can be simply solved by having each joint resembeled as a GeomSphere, then the bones like to the GeomSphere so that the humerous and the ula can collide and not penetrate each other like some wild magical creature from out of space! Also to take into consideration the max/min degrees the joint can move around. E.g, its easy for you to point your humerous forward but its difficult to point it backwards while keeping your arm straight. I dont believe even Havok has managed to do this as most ragdoll demos and games i have played the upper arms of the player and and often does go behind his back…
IK,
Each bone can be thought of as its own coordinate space with its own rotation matrix and its own position. The positions and rotations of children are influenced greatly by that of their parents. Inverse kinematics involves recursing backwards. So you place the last joint where you want it (say on the stairs), then IK algorithms will find out the rotational matrix and position needed for its parent so that the child has that valid position. This is useful in the stairs example you gave. This is also how modern games like Halo2 position the player’s feet directly on uneven terrain, so that the player doesn’t look like he’s hovering with his feet penetrating the mountain…
Both are complicated to make and not for the light hearted to take on, so good luck to whoever is implementing them! 
DP