Created a new scene graph node class for the character. The actual character model is a child node of this character node. Current state of movement is stored (in my demo, crouching + running) and it handles updating the current animation.
Movement was achieved through attaching a collisionresponse animator to the character node, as well as a custom animator which moves the character according to the movement states and the camera direction. None of the predefined animators seem to be suitable for interactive movement.
Camera handling was done by simply updating the camera position/orientation from within the animator, or on mouse input (orbital mouselook).
At the end of it all, I gave up because I don't feel Irrlicht is very well designed... and I wanted to play with the new XInput stuff in the DXSDK [grin]