Ok, I've figured this out. Let's remind us all what we're trying to do here

.
The idea is that if you have a plugin that requires a template modification - that's a bad idea. You don't want users trying to mod their templates, not following instructions, messing things up, then running to you for support.
Also, another plugin may come along and try to modify the same template... plus, what about patches that alter templates?
My idea is that you should create a brand new template entirely. Then, there should be a way to, on-the-fly, use YOUR template instead of the default template, IF your product is active/installed.
Here we go, folks! In my case, I want to use a custom template named
invite_forumrules instead of
forumrules.
Hook Location: cache_templates You must first be a
registered member to view any code.
This caches my template.
Hook Location: global_start You must first be a
registered member to view any code.
This will replace the cached
forumrules with the cached
invite_forumrules. Now, any code that fetches the forumrules template will in fact fetch YOUR template, but only if your plugin is active.
I still have a remaining question: how do you package a custom template in an xml install/product file?