Why I have the same shell dotfiles everywhere
In light of the complexity that is required to use the same set of shell dotfiles on all of the systems where I have accounts, one might sensibly ask why I bother. The answer is that I heavily customize my account's environment; I have all sorts of aliases, environment variable settings, and so on.
(Such heavy customization does have its downsides, including that I am not really comfortable on a new system until I have brought up my environment. A more subtle disadvantage for a sysadmin is that it is somewhat challenging for co-workers to temporarily take control of the keyboard when we are working together.)
While building generic dotfiles is somewhat annoying and time consuming, I find that it's worth it, because maintaining multiple copies of a heavily customized environment is a recipe for annoyance. Updates are a pain, which means that you skip propagating 'minor' changes to other systems or you are in a hurry one day so you only do a change on the current system because it's what really needs it. Inevitably your environments drift apart, which means that sooner or later something behaves differently than you expect (often on a little-used system).
(Having written that, I confess that I am no longer as faithful about this as I used to be, partly because I have stopped automatically pushing out updates from a master machine. But I still value the ideal, even if the practice doesn't quite live up to it.)
One occasionally amusing side effect of having been doing this for years
and having had accounts on all sorts of systems is a nice fossilized
layer of options and settings for now obsolete environments. (For
example, I am still carrying around settings for a KSR1. And a Cray,
which I see had versions of
cp that had no