There are a couple different approaches. The simplest approach is the Quake3 style, having separate meshes for upper and lower body. Then you can animate each separately easily. For most characters the seam at the waist is hidden by their pants.
Another, more tricky (and more flexible) approach is to do animation masking by moving/rotating bones on a non-animated mesh to match the bones of a pair of animated skeletons. Have walking and punching animations running (skeletons without meshes so that they're invisible) and match the bones every frame on another, visible mesh w/skeleton.
And then of course an obvious approach is to just redesign your game so that the player cannot walk and punch at the same time. This feels really stilted for shooting, but for punching it makes sense. After all, in real life people usually stand in one place while throwing a punch.
Another, more tricky (and more flexible) approach is to do animation masking by moving/rotating bones on a non-animated mesh to match the bones of a pair of animated skeletons. Have walking and punching animations running (skeletons without meshes so that they're invisible) and match the bones every frame on another, visible mesh w/skeleton.
And then of course an obvious approach is to just redesign your game so that the player cannot walk and punch at the same time. This feels really stilted for shooting, but for punching it makes sense. After all, in real life people usually stand in one place while throwing a punch.