Nametags are created by $CHARACTERSYSTEM, in the _SetCharacterName method, which is called by C++ code. The nametag is a GUILabel that has its gluedtonode field set to the character, and its worldpsaceoffset is given a value to make the nametag appear above the character's head. Because different model types are of varying size, each one needs its own worldspaceoffset. This is stored on the NametagProto client-side prototype. The prototype stores the Vector3 for each model type it needs to know about. The script defaults to a value of (0,.04,0) if it can't find the model in the prototype.
Currently the only way to modify these values is via the CLI. You would enter the command |MLP modelNametagProto modelNametagOffsets; insert "model" (offset)
|MLP modelNametagProto modelNametagOffsets; insert "character_sample" (0,0.04,0)