I've been wondering this for a while now.
Let's consider a few small programs that range from 7 - 15 MB. Mozilla's software flagship is Firefox 3.0.x currently. It's just over 7 MB. Microsoft is competing with Mozilla's web browser with their upcoming Internet Explorer 8 (currently beta 2), and it's only 15 MB or so. It takes each of them such a long time to create their newest browsers, yet when it comes to Microsoft making a whole new OS (such as Vista), they spend approximately 7 years making it (I could be a little off). And now they're working on a new one (most likely a spin off to Vista) code named Windows 7, which will have new features among other advancements. And this is only taking them about 2 - 3 years to do, if the schedule is correct.
Let's take another example, and look at Adobe. Just recently, they released their CS4 product line. I remember about 1.5 - 2 years ago when CS3 was the latest and greatest. And now this?!
The CS4 Master Collection is 18 GB! Windows Vista Ultimate is (after installation) about 10 GB, I read. How are software companies able to create such massive programs, but when it comes to the smaller ones such as Firefox and Internet Explorer (among many other smaller applications that have beta testers and programmers all over the world working on it) take so long to create in comparison to their sizes (a few MB vs. several GB)?
Some examples: Firefox 3 (> 7 MB) took about 1 - 2 years to develop, and be released. CS4 took about 2 years to make, and it's 18 GB. Vista took about 7 years to make, and it's several GB in size. Internet Explorer 8 has been in development for about 1 - 2 years now, I think, and it's only 15 MB.