This is mainly from a user perspective:
Blender has two types of animations: IPOs and Actions. Each type has a corresponding window: The IPO Curve Editor and the Action Editor. IPOs apply to all objects and Actions only apply to Armatures.
Actions are Blender's skeletal animation system - specifically they control bones within an armature. An action is a list of curves. Each curve has a name (the name of the bone it affects) and a list of keyframes. The keyframes have properties like time, scaling, translation and rotation (in quaternions). The curve also has properties like interpolation (linear, bezier or none.)
The movement of the bones affects the vertices and objects that are attatched to those bones. When you parent an object to an armature, Blender gives 3 options: bone (the entire child object moves with a bone), armature (vertices in the child object are weighted to the bones), and object (the child object is attatched to the armature's base, like any other parent object.)
IPOs animate objects generally. Each IPO animation is a list of curves like an Action, but instead of a curve for each bone, it has a seperate curve for each property that can be animated, such as: ColR, ColG, ColB and ColA (which control the object's color and transparency) LocX, LocY and LocZ (location), dLocX, dLocY, dLocZ (relative location or movement?), RotX, RotY, RotZ (Euler rotation) SizeX, SizeY, SizeZ (scale)
IPO curves have more properties than Action curves. For example, an IPO curve can be cyclic or open-ended. Not all IPO curves are supported by the game engine, but at least color, alpha, size, location and rotation are. IPOs use Euler rotation rather than quaternions. (Some types of animation not supported by the game engine include lattice deformation and vertex keys.)
Hierarchial relationships are essential to fully using the animation system. Child objects are transformed along with their parents. (I don't think they inherit color or alpha.) Objects can also be parented to vertices. If they are parented to one vertex, the child maintains it's position relative to that vertex but doesn't rotate or scale with the object containing the vertex. (They can calso be parented to 3 vertices but I have less experience with that.)
I've heard there will be changes to the animation system in the next version of Blender, but I don't know how it will affect things from this side.