From Valve Developer Community
Normally, the $definebone definitions are always used for the default positions and rotations of the skeleton. Setting $unlockdefinebones will instead use the first definition found in any of the source files specified in the QC.
Note:This behavior is the opposite of the default behavior in previous versions of the model compiler. For Half-Life 2: Episode Two, the default behavior was changed to stop the more common undesirable effect of animation order messing up default locations of bones - such as those used by attachments - that were only actually defined in a small subset of the source files. The drawback is that some badly exported LOD models - ones whose skeletons don't match their actual pose since they're no longer attached - now will show the previously hidden errors. Setting $unlockdefinebones will get the old behavior back.