If my understanding is correct, it's completely possible to add new animations to characters in Oblivion in 3rd person and attach animated objects to the characters that play their animations on demand. There's even a combat mod that adds all kinds of moves like kicks, thrusts, beheading animations etc. but you can see the seams of the animated models in first person while it looks fine in 3rd person.
So, based on this, it should be possible to implement manual ladder climbing even in Oblivion. The game has everything one needs to do it. Example:
1. When an actor activates a ladder object, he will be "locked", moved up and down all the way as stated in the ladder object's script or by little amounts based on key input of the player and the custom animation will played and stopped accordingly to reflect the state of the climb.
2. Every time the player activates a ladder object, ID of the object and the Z coordination of the player at the time of activation will be stored in an array so if the player is climbing several ladders between several floors, there will be a linear record of them to be used by other actors. If the player activates the same ladder object twice subsequently (ie. the player climbing up or down to another level, and climbing down or up back to the original level), the references will be deleted from the array when there aren't hostiles in the cell.
3. Scan the cell for hostiles and store them in another array.
4. Check the distance and the Z difference between the player and the hostiles.
4.A. When it's less than the default height of the player's race (also taking into account the height of the race model vs. object center) between the player and either hostile AND the distance is also below a certain amount (to determine whether the hostile can catch up with the player to hit him while climbing), check the animation played on the player model. If it's, say, ani_climb_player_race_something, make that hostile attack the player. If the player is hit, climbing animation on 3rd person is stopped or the animated object in first person is removed, player is "unlocked" and falls down.
4.B. If Z difference is higher or the distance bigger, get the hostile's Z, compare it against the other Z values in the array mentioned in (2) and when a match within a tolerable range is found, get the corresponding ID of the ladder object and make the hostile activate all the objects in the array in the same order the player did. Obviously, if the player climbed only one level, there will be only one reference to be activated.
5. Hmmm, that's about it, I think. In case several levels can be reached via both ladders and through the terrain that's elevated at some places, it probably would be a good idea to let the AI try to reach it through the nodes first but I don't know if there's a script function to determine whether the AI is able to reach the player or not.
I'm sure I've missed some stuff (like collision between multiple climbers which would be incredibly easy to handle without resorting to physics except for the ragdolls when someone dies which are handled automatically but the ladder scripts could attach another scripted object to actors who die on the ladder to check for collision with other live actors to deal accordingly), but that would be the basic implementation that I know would work in Oblivion. At most, the animation part would be disastrous but the game gives you all the functions you need to script this.
Now that I think about it, I think the arrays were an OBSE feature. Anyway, for a programmer or coder, implementing this stuff from scratch should be a very simple.
So, I can only repeat what everybody knows: Bethesda cannot into game development!