Split or not, this does not matter. You need to apply a final transform matrix to every single vertex
whether that one belongs to a separate model part or not. This
is not the complicated part, it is a simple matrix multiplication. Otherwise you'll not get anything that looks visually appealing.
Calculating that matrix usually (but not necessarily) involves walking a hierarchy of "bones" which can be represented as quaternions and offsets, matrices, or something else (dual quaternions, or maybe an ONB), and blending the matrix (or SLERPing the underlying transform) in some way according to a "weight" value attached to the vertex. This
is the complicated part.
Cal3D does that kind of thing in C++. Ready to use, production code.
You can do the same in a shader too, but it's none easier. Entering the words vertex skinning opengl
in Google gives for example this nVidia code sample
. Working minimal implementation, runs on NV30 and upwards. It's Cg based, but translating that to GLSL is probably a matter of minutes, if need be.