I know this post is old, but its 1st result on Google for me and I've been Googling around this whole evening to find a solution to this exact thing, and now I've finally got it working, so I wanted to share how I did.
In my example, I've been using and exported FBX model from WoW Model Viewer, customized/cleaned the rig by deleting redundant bones and adding PoseMorphs to different joints.
I then wanted the customized/cleaned rig+posemorphs to be reuseable on different characters of the same modeltype. In this case, exporting an identical modeltype, but with different textures such as eyecolor, haircolor, skincolor and clothes.
Model A is my source model, which I want to take my rig and weights from, and transfer to Model B.
I did it this way:
Step 1: Model A and Model B in the same project file. They must be in the SAME position and exact same size and model.
(The models in this example consists of a Polygon Object with Texture tags, UVW Tag, Phong Tag and Weight Expression Tag, with a Skin Object as a child.
Beneath the Polygon Object is a Joint Objects with up to 195 joints)
Step 2: Delete Joint Object (including all joint children), Delete Skin Tag, and Weight Expression Tag on Model B, so only the Polygon Object is left from Model B. (Keep UVW Tag, Texture Tags, and so on).
Step 3: Copy the Joint Object, (and joint children) from Model A, and put it underneath Model B. It does not have to be a child of Model B.
Step 4: Right-click the Joint Object that you just put beneath Model B, and click "Select Children" to be sure, that all sub-joints are selected. Ctrl+click the Polygon Object, so that you have both the Joint Object and the Polygon Object selected. Go to Character>Commands>Bind to bind the joints to the polygon object. Now the joints are connected to the mesh, but the weights are still to be fixed.
(If you are playing around with World Of Warcraft models like me, be sure to unselect the main parent Joint Object which just ends with "_hd", so that the first selected joint is the "hd_bone_0", and all of its children.)
Step 5: Go to your Model A, click on its Polygon Object, and click on its Weight Expression Tag, so both of them are highlighted. Now got to Character>Manager>Weights Manager... and a new window will open. Click on the Weights tab, then right-click on one of the joint names and click Select all.
Step 6: Now, in the Weights Manager, click "File> Click on the Gear beside the "Save Weights...", and be sure to check "Zero Weights". Now choose a place to save the weight .txt file.
Step 7: Click on the Polygon Object and the Weight Expression Tag on your Model B, that you want to transfer the weights to.
Step 8: Go to Character>Manager>Weights Manager. Go to the Weights tab, and right-click on one of the joint names, and click Select all.
Step 9: With the all weights selected, go to File>Click on the Gear beside the "Load Weights...", and be sure to check the "Match Joint Names". Now find the weight .txt file you just created, and let it load in.
Now you should have succesfully transfered the weights. Be aware, that the loaded weights are not always colored the same as the weights on your source model, so this might confuse you to believe, that the weights did not transfer. Try moving around different joints on your Model B, and see if the mesh moves correctly with it. It should move exactly the same weighted areas, as on your Model A.
At least this worked for me on exported .FBX World Of Warcraft models.
I'ts not a problem to rename joints on your source model before the transfer, but if you have grouped some joints in nulls, be sure to take the joints out of the groups and delete the nulls before you attempt to bind the copied joints to the target model. I'm not sure if deselecting the nulls but still selecting their joint children will work.