Q:

Why is the Team Fortress 2 install so huge?

I notice that Team Fortress 2 is almost 10 gigs when downloaded via Steam. 
Why is that? Since the game's graphics are very simplistic, and I assume there's not like an hour-long 1080p movie embedded somewhere, where is all those bits going towards?

A:

Note: This answer's numbers have been updated with numbers from the client sizes.  The server size is much smaller.
10.5GB is correct.  Of this, 3.68GB are shared files from Half-Life 2 and Orange Box games.  That leaves 6.82GB specific to TF2.  This is a logical progression from the 4.85GB TF2 was at when update 119 was pushed a year ago.
Team Fortress 2 is split up into 6 distinct packages on the Dedicated Server side, totaling 5.8GB.
TF2 is split up into 11 packages on the client side, totaling 10.5GB.
The client packages are:

team fortress 2 content.gcf - 3.95GB
team fortress 2 materials.gcf - 2.84GB
team fortress 2 client content.gcf - 27.5MB
source 2007 shared materials.gcf - 985MB
source 2007 shared models.gcf - 148MB
source 2007 shared sounds.gcf - 2.26MB
source materials.gcf - 1.02GB
source models.gcf - 449MB
source sounds.gcf - 975MB
orangebox media.gcf - 7.55MB
multiplayer ob binaries.gcf - 155MB

I can break down the TF2 Content package further.  The only 5 directories larger than 25MB are:

bin/ - 40.1 MB
maps/ - 2,364.5 MB
media/ - 620.7 MB - Movies that play the first time you play a map
models/ - 426 MB
sound/ - 901.1 MB

The problem is that most things in Source games are uncompressed.  All non-music sound files are 44Khz, 16-bit mono wav files.  There are also 11 compressed music files that are 128kbps 44Khz 16-bit Joint Stereo mp3 files.
Map files are stored uncompressed, despite Source understanding the Bzip2 compression algorithm.  Valve ships 51 maps files: 48 are multiplayer maps, 2 are Training maps, and 1 is the Item Test map.
The average map size is 47.6MB... unless you take out the training and item test maps, then the average size is 49MB.  Arena maps are typically smaller in size, while multi-stage maps (like Dustbowl, Goldrush, etc...) are typically larger.
Every new hat in the game adds a number of files.  It adds 4 models, possibly 1 physics file, 2-4 material files, and 1 backpack icon file.  As far as I can tell, these files are all fairly small... they add up to around 2MB for the Portal 2 Pin.

A:

There are two real reasons TF2 is larger today than it was at launch. The first is 3.5 years of software patches, fixes, and optimizations. What's less obvious is that over those patches, there was a lot of new functionality TF2 now has to handle -- there are now many more gameplay modes, including Training, Arena, King of the Hill, Payload, Payload Race, Medieval, Test, and real, capable (if not particularly brilliant) bots.
The second reason is a drastic increase in the number of "official" maps. Team Fortress 2 launched with just 6 maps. There are now fifty-one officially supported maps, some made by valve themselves, some made by community members and stamped with the "valve-approved!" stamp.
Don't listen to folks who claim the advent of hats and their ilk caused the feature bloat: all a hat is is a single mesh. All the effects a gun might have is handled by the server (the client must only display and send the commands). A map? A map is hundreds of meshes, at least, plus a multitude of other things that the client and server need to 'agree' on.

A:

The following GCF files that have "Source" in their names 

source 2007 shared materials.gcf
source 2007 shared models.gcf
source 2007 shared sounds.gcf 
source materials.gcf
source models.gcf
source sounds.gcf

are installed whenever a Source game is installed. So that's a fixed one-time investment but shared by all Source games.
Therefore, the net size of TF2 is about 6 GB excluding Source assets.
This pays off when you install a second game like Counter Strike: Source, which will automatically use these resources.

