I've done a little bit of environment taming in my day.
Everybody's already told you the "right" things to do. They're all right. Thing is, you need to get there somehow, and you're looking for a path from here to there. At least, I think that's what you're asking.
You already have bazaar. Good tool. Don't worry about bzr versus cvs versus hg right now. You picked something. Run with it.
I suggest a quick shell script that replaces your editor with "edit; check-in; offer to push". Create another quick script (call it "oops") that asks you whether you need a local or global revert, then issues the relevant commands. Push those scripts to all machines (maybe as their own bzr project). Now, you basically have the same process with a much larger safety net. This isn't software that's being released to the world. Don't worry about version numbers or branching. If you EVER have to change a file, throw it into version control.
Now, you can start to synchronize your scripts. With an environment that wild, you probably have a script that's almost-but-not-quite the same running on a bunch of machines. Maybe there's a hard-coded hostname or directory or something. Come up with a version that's more universal (Use big "if hostname = foo" blocks if you have to), and get that new universal script added to a project and pushed to all machines. Once they're all using it, you can slowly clean it up.
Cool. You have unified scripts. Now let's talk about those configuration files. I'll bet that they're also 99% identical across all of your machines. Get them all into the same project (call them config-machine1, config-machine2, etc.). Get them as identical as possible. Now, think about how you might handle differences. For a quick fix, I like the "magic comment" ("## BEGIN foo.sh MANAGED SECTION" and "## END foo.sh SECTION") and a perl script that looks for those strings. m4 also works well, and isn't too hard to learn.
"Okay, smart guy. I have all of the common config scripts, but I have a bunch of single-purpose machines and scripts, too!" Yup. Awesome. Get them into version control, too. You never know when that machine's going to suddenly die or your boss will break out in a fit of generousity and get you that second server for load balancing. (Hey! It could happen.) When it does, setup will be a lot easier if you have all of the config files in a project.
At this point in the game, you'll be pretty comfortable with version control. You'll have been burned once or twice, and it'll have saved your butt a few times. You'll have some experience, and you'll be kicking yourself for the way that you first set it up. Now's the time to revisit those decisions. Is it time to split up some projects or roll some together? Maybe git or hg might make more sense. Maybe you hate your life and your coworkers so much that you want to go to Perforce, ClearCase, or some other commercial software. You'll have the experience to design it right.