Why are node groups not being saved in my startup file?
Node groups have users linked to them, like materials or textures. If a node group has no user, it will not be saved to the blend file. After startup they will be gone. In some cases it takes more than one restart and save before all unused instances are gone due to internal dependancies. 

You could, as aliasguru suggested, set fake users. This could be done by executing this line in the python console:

for node_group in bpy.data.node_groups: node_group.use_fake_user=True


Afterwards they should not disappear anymore. Note that you have to repeat it for every file and when you create new node groups.