> This seems very non-ideal because not only does it mean the module is not self-contained in a single directory ...

What is "non-ideal" about it other than your lack of taste for it? Why does it all have to be in a single directory? Some parts go in design, some parts go in a code pool. If you know what should go where, it is not really an issue most of the time.

> ... but also it requires overriding the entire .phtml file (not just the part you are changing) ...

There are a number of ways to change content. The approach that it sounds like you're taking is one of "*let's do this in a way that nobody would suspect instead of using the built-in tools Magento provides us*".

You could, instead, design your own block that does what you want it to do and use your module's layout update XML to remove the old one and add your new one. Nobody says you **must** rewrite a template.

> Please note: I do not want to override the entire file, just this one div.

But, that's the *only* div in that template. 

> ... and it can lead to major problems down the road should there be updates to the file you're overriding (since your module has no way to detect those changes and overrides the entire file).

Again, nobody says you have to override a file, and even then, if you do there is a package/design system for a reason. 

---
EDIT

If the condition being checked is an admin config value, you can also use the `ifconfig` attribute to adjust the template being loaded, see: http://magento.stackexchange.com/questions/3418/conditionally-show-hide-blocks-in-layout-xml