Armatures. The lifeblood of advanced animation, and especially character animation. I have tried a lot of things with them, but I must say that I do not feel I have nearly pushed the envelope as much as I could or should.
You have two basic options for linking armatures into your scene: Linking them as armatures (duh), and linking them as objects. As armatures, they work much like meshes, in that they do not show up in the scene, but you can create a new armature and switch its actual bone structure to that of the linked armature (go to the Object Data tab in Properties, which is for armatures defined by a little guy with his arms stretched out). The linked armature will take the place of the newly created one (which was presumably just a single bone).
The alternative is to link in the armature as an object, i.e. going into the Object option in the linking ‘folders’ and picking the armature. This is a slightly different experience, part of which remains odd to me. The thing is, this method brings in the armature with everything in it. That means it shows up in the scene right away, but it also means that all the animation comes along. So if the armature had poses and animation in the source file, it has that same animation when linked in. One problem is, that it will not let you parent anything to it; click Ctrl-P as much as you like, you don’t get the parenting options. To do that, you have to make the armature a proxy. And if you make it a proxy, it loses the animation. So basically, whether you create a new armature and link in an external armature that you then insert as the actual armature for the newly created one (I know, the phrasing is Hell), or you link in an armature as an object and make it a proxy, what you end up with is pretty much the same: An armature without any animation in it, which you can then parent a mesh object to. Funny fact: You can remove the animation from an armature imported as an object but not yet made proxy, simply by going to the NLA editor, making the animation data an NLA track, and deleting the track (that seems the only way to do it, btw. You can’t just delete the animation in the dope sheet). That leaves you with the armature in whatever pose it had in the scene when you deleted the NLA track. Of course, that has no real consequence, since making it a proxy (in order to, you know, use it for something) will reset it to rest pose no matter what.
So you have an armature that you can deform-parent a mesh to. Here comes the trip: If you create an object (with mesh) as per usual in Blender and deform-parent it to the linked-in armature, everything is fine. You can save it, shut down Blender, go for coffee, come back, load it and everything looks as it should. However, if you link in an object (complete with mesh), it won’t deform-parent to the armature. In fact, it won’t parent, period! One thing never mentioned earlier about linked object meshes is that they are kind of pricks, they don’t really feel like doing much of anything except standing there; they don’t move, they don’t rotate, nothing. So you go ahead and usse my earlier suggestion and make an object, link in a mesh, swap the object’s mesh with the linked one, and you have a compliant playmate. Hell, it even deform-parents and everything. The kicker? Try and save it. Go ahead, I’ll wait. Now, open a new file. Now, load up the one with the linked in armature and mesh. Everything in the Properties tabs still claims that the mesh object is parented to the armature, but it only acts as an object parent, not a deform-parent. Meaning if you move the armature around in object mode, the mesh object follows along nicely. But rotate bones, and nothing happens. The deformations it so nicely showed you back when you first parented it to the armature? Gone. The armature might keep any animation you gave it, but the mesh object seems to have forgotten it was supposed to care. Good news is, break the link (delete the Armature modifier, for example), then parent it again, and it goes back to before, deforming and everything. But for some reason, when you load the file, an object with a linked mesh ‘forgets’ it is supposed to deform, while an object with a local mesh (one that is not linked from somewhere else) remembers. I have no explanation why. And it ticks me off, to be honest, so anyone with a fix, I will bear your children (I am male, be warned).
Back to the animation. As mentioned, anything that allows you to actually parent a mesh object to the armature will erase any animation in it. I have found no way to stop this from happening. I have found two ways to work around it, though: Either copy the animation to clipboard in the dopesheet before making the armature a proxy (if that is your poison) and copy it back in from clipboard afterwards… or start linking to Actions. Needless to say, the latter is more in tune with the idea of my experiments, since copying the animation back and forth appears to simply give it a local, unchanging copy of the animations it came in with. No, linking in Actions is the way to go for me, because that means that someone can work with the animation of the armature even while you have the armature in use in another file. So you may have your soldier rigged with an armature that dumbly waves arms and legs around to insinuate that he is ‘running’. you can have him in a scene and render it, you can move things around him. Hell, depending on what your animator is doing elsewhere with the actions, you can even animate things in the soldier! Maybe you need to do facial expressions. Your animator isn’t using the guy’s eyebrows to make him run, is he? And when the Action used in the running is updated, you will see it next time you load the scene the soldier (or the linked in mesh, materials, etc.) is in!
To really make use of linked versus local Actions, you need to know your way around the NLA editor. That is beyond my current writings. But a few teasers: You can link in multiple Actions into the same armature. So those facial expressions? Maybe while your animator in Toronto is creating a sweet running Action for the soldier, someone in Senegal is doing the facial animation! And since Blender 2.5 lets you put literally anything animated into Actions, well, get creative! Also, done properly, Action animation parameters can be copied together, or seperated into different Actions. How this affects linkability is not something I have experimented with, but I fear that it produces entirely new Actions; if you want to keep the links working, I think you need to use the linked in Actions as they are
But hey, if one action is running, one is facial expressions, and one is firing the rifle, those Actions can be moved around inside the NLA to change timing (“hmm, shoot before or after he passes by that big rock…?”). How good they look individually changes as your off-site(?) animators fiddle with the details of each linked Action.
Finally, a small note: Actions are a bit funky in 2.5, compared to 2.4x (although that got funny at times, too). You need to put them in NLA tracks and such. Be sure you know how to use Actions normally before using them with links, or you may just screw up your work in fascinating ways 
That’s about as far as I’ve come with my current experiments. I am going to fiddle more with all of this, but it’s probably going to be a few days before I have truly new experiments to talk about. If anyone has ideas, suggestions, questions or explanations on any of this, please post. Linking is not the most prestigous part of Blender, but it is IMHO a fascinating tool, with promisses of tremendous potential for larger projects. I think it is worth exploring far more than we do now. Again, IMHO.
Edit: Silly me, I never touched on Group linking! I’ll continue my already ample experiments on that, and get back at some point with observations!