Edit imported armatures from other formats without destroying mesh or anim data?

I import meshes (smd’s (valve), m3’s (starcraft II), fbx , dae, bvh etc.) with armatures and animation but the armatures are often “wrong” (I can’t come up for another term at this moment). what I mean by “wrong” is that the bones are tiny and often not connected to their parent, and other times not where they should be (f.e. hand_bone slightly outside hand), but surprisingly the animations do work. Also the bones point towards a specific axis. How do I move the bones or the bone tips to their correct location without messing up the meshes or their animations.

Thanx in advance!