XSI should be able to do this, that's what raven used for the game after all. 3D studio max 4.x and 5 can definately do this, later versions im not sure (compatibility issues with the export plugin, i believe it stops at version 8)
The wonky movement could be a result of bone pivot point orientation. I know that 3D max's coordinate system is different from the game's so the same thing is probably happening with XSI. When i made the AT-TE skeleton with 3D max, some of the bones didnt match the orientation in modview. When troubleshooting, i simply rotated the problem bone 90 degrees (in reality i changed it's pivot point) to the left for example, and when modview played back the animation, the orientation was correct.
This was because i created the bone in the improper viewport or simply the pivot point conflict between max and the game. If you can identify a bone that behaves correctly in modview and check its pivot point in XSI you should be able to point out the game's coordinate system difference between both of them.