It's a resource pack. THey added it to the server, and the user downloads it. SImples. (well, thats a theory. not fact)
With custom geometry and to be honest I still haven't learnt how to use it. Sandertv made a library which makes it easier to use - https://github.com/BlockHorizons/LibSkinChanger
Nice bump. Anyway. new Skin("blah", "blah", "blah", "blah", "geometry data here"); I still do not know how geometry data should look like, though.