Best practice for avoiding module / theme / profile name clashes? We currently have our code managed such that each site has its own theme and install profile. 
These have naturally evolved in such a way that the names of these items (and their directories) tend to be the same. 

For example, one site's theme and profile are both called 'dennis'

This causes problems with feature servers, and (I'm suspecting) with Aegir.

Now... it's relatively easy to rename either of these (although, for various reasons it's noticeably easier to rename the profile). Is there any sort of best practice here, ie is it normal to call the theme dennis_theme, or the profile dennis_profile? Should I apply this convention to both, or just to one?
In my office we usually have a site key that gets used for most things.


Client: Acme Company &amp; Co
Key: acme
Site Folder: /path/to/WebServer/sites/acme
Custom Modules: acme_tweaks, acme_forms, acme_blocks, acme_settings
Theme: acme_theme
Repo: acme.git
etc...


For code that we re-use from site to site, we ensure that it's generalized and client ambiguous and then add it to some common modules that are part of our default module set - such as:


theme_tweaks
template_suggestions


Our rule is that unless it can be applied to all our client sites (at least moving forward) then it shouldn't go in theme_tweaks but in acme_tweaks etc.