If I'm a noob, why would I stand again while on furniture? It's assumed that you do when you move. So, if you add the fix to do_stand, it wouldn't do anything, as you're already taking the action to stand from the furniture. You'd still have the bug when you moved in one of the directions, preventing any combat or any other action that is above (numerically) POS_STANDING. What this fix does is forces the player to do_stand BEFORE they move in a direction, indicating that they have, indeed, moved off the furniture. I used a silent check, but you can add a comment to the player saying "You have hopped off of &p and headed <direction>." ...Or some such, within that ifcheck. When you move in a direction, it doesn't already assume you are off of furniture, it simply moves you, as that is how it was coded (for smaugfuss, at any rate).
If you want to test this, simply stand or sit on an object, then move in a direction (even to "bump" a wall). You will remain on that object you last stood on. What I posted fixes that, but it must be added to do_<direction> at the top of the function before the checks start, to work properly.