a recent post on Jason Kunkel's blog (link) about users purging the entire model made me think about sharing a piece of our template setup to prevent this.
Families can only be purged if there's not a single instance of that family anywhere in the model. So the solution is pretty simple... create a legend view and place an instance of every text type, line type, tag, region, detail item , or even family. We have a few of these "anti-purge" legends (drafting elements, detail items, families), which also serve the purpose to check the families.
As long as there's at least one instance somewhere, nobody can purge it.