"Copies" of objects

I am currently using blender 2.65 on a windows 8 computer
Imagine the situation:
I am trying to animate a space battle, i have a detailed model of a fighter and want to have a whole squadron of them “flying” around. The individual model is high poly and takes up quite a few megabytes and quite alot of processing power alone, having two would lead to a file size for the animation file twice the size, having 20 of the fighters would lead to a file for my animation 20 times the size of the file for a lone fighter. I want to be able to animate each fighter individually and each one contains moving parts (engine bells that can turn, radiator flaps that can open and close, turrets that can turn, etc). Is there a way i can do this without having to have a file storing twnety copies of the fighter mesh. I know about “linking” from other files, but as far as i know that only works for static background elements, things that don’ move. I want a method where the objects can move separately, and in the simple example of each fighter being two parts a “turret” object with a “hull” object as it’s parent i would want the turret on each one to be able to move. I would not need to do any of the “edit mode” sort of modifying of an object, just keyframing in object mode. Is there a way for blender to do this?

I can give an exmaple of this from another 3d software package, google sketchup. If in that program i make the “hull” as a “group” and the “turret” as a separate “group”, then i put them both together inside a third group(this third group just contains a turret object group and a hull object group). I can make multiple copies of this third group in my scene and position, turn, scale them each individually. I can also open up one of those copies and rotate the turret object within it relative to the hull object within it. These being “groups” not “components” moving the turret inside one of them won’t make it move inside the others. this edited third group will no longer be the same as the other third groups in the scene, but as it contains two objects which are idnetically duplicated throghout the scene then sketchup would only store the data about what is inside one of the turret groups, what is sinside one of the hull groups and where each is positioned. hence it would have a file size barely any larger than for one fighter alone. Can blender do this, where each object can be moved separately and it’s children altered but as nothing gets done in edit mode belnder only needs to store data about one copy of the object?

Add each section you want to treat separately to a group and use Dupligroups so you get instances of those groups https://www.blender.org/manual/modeling/objects/duplication/dupligroup.html?highlight=dupligroup