You're really asking several separate, but related, questions here.
First: every company I've ever worked for had some kind of standardization of desktop machines. At a minimum, the hardware and OS were standardized across large groups (possibly in rolling categories: you get this year's machine when you start, and then 2 years later you get that year's machine, etc.).
As for what the hardware is like: a great company will give everybody in the building awesome hardware with fast CPUs, giant monitors, and huge amounts of RAM, even if they don't need it. A good company will at least make sure that you get hardware that is adequate to your job (which at a minimum means that engineers will get bigger screens and more RAM than the receptionist does).
Not only that, but every company I've ever worked for had some kind of standard software set up as well. At a minimum, that means things like email/calendar/groupware, office software, etc. Everybody gets the same thing by default; at some companies you can get something else if you have a justifiable reason (although there may be lots of paperwork involved). Plus of course you'll get the company's standard line-of-business software (although these days those applications are often web-based). You'll usually be given these applications, and you're usually stuck with them.
Then there is specialized software that you need to do your job: compilers, IDEs, image editing tools, etc. Regardless of whether we're talking about free software (e.g. Eclipse) or expensive software (e.g. Visual Studio, Photoshop), the company will usually standardize on a version. So everybody who gets Visual Studio gets 2010, not 2008 (or something like that).
Inevitably, this leads to there being some officially-sanctioned place for the standard versions of things to sit -- if for no other reason than to prevent everybody from re-downloading Eclipse. Likewise, for software that has update servers or repositories, it's common for the company to run its own internal mirror repository (and possibly to block access to external mirrors) to ensure that (1) big packages are only downloaded once, and (2) everybody gets the same version.
Generally, any software that's in a company officially-sanctioned repository (where that may be an OS package repository, or just a file share with installers, or even just a file cabinet with install disks) can be installed on your computer. Most places I've worked allow you to self-serve install this kind of software, regardless of whether it's free software or paid.
What About Everything Else?
But that brings us to what appears to be your real question, which is twofold:
- What about software that isn't officially sanctioned (yet)?
- What kind of customizations can I make to the software? (Or, equivalently, what kind of administrative rights do I have on my own machine?)
For the first question, it depends on the company, and the software in question. I've heard that some companies are pretty draconian about non-sanctioned software, but everywhere I've worked the policies have been pretty relaxed, especially for engineers. Sometimes a particular software package is disallowed because it hogs company resources (e.g. peer-to-peer file sharing) or is fundamentally insecure (e.g. various types of remote PC access software) -- in that case, there is usually a company-sanctioned alternative.
For everything else, there's usually some kind of approval process. At some companies, this is as simple as asking your manager, "hey, can I install this software?", whereas at other companies the software may need to have several levels of sign-off. Expensive software and software that communicates with external services are the most likely to be carefully scrutinized, as well they should.
The second question is more about how much freedom an individual employee should have to make changes to their own machine. At most places I've worked, engineers are given pretty broad leeway, with the caveat that certain changes will "void your warranty" -- the company helpdesk won't support you anymore, and you'll have to deal with any issues on your own. Non-technical staff usually have less leeway, mainly because the helpdesk doesn't trust them to not break something.
For example, at my current job (at a large software company mentioned in your question) I don't have root access to my own machine, but I do have sudo access to do most everything I need. At a previous job at a smaller company where we were on Windows, I was in the Administrators group on my own machine, so I had pretty free reign.