In the properties window, click the Local Files tab and click the Verify Integrity of Game Cache button.
If Steam itself is failing to launch or you still experience odd issues with games not working properly, you might want to try deleting your Client file.
I recently restored my computer back to factory settings (clean os) after screwing it up, but I kept source 2007 shared materials.gcf, source 2007 shared models.gcf, source 2007 shared sounds.gcf, source materials.gcf, source models.gcf, source sounds.gcf, team fortress 2 client content.gfcf, team fortress 2 content.gcf, and team fortress 2 on a 16 gb flash drive, so I could just verify integrity of local cache and not have to redownload 13 gb of stuff.
I've done this before on moving from windows - ubuntu, but it's been stuck at 100% verification for 4 or 5 hours - validating Steam cache files 0 out of 1, validating Team Fortress 2 file 1 out of 1.
You can do it manually from the properties tab by right clicking in the game list.
If something goes whacky with your game, this sometimes fixes it.
I recently posted this to the Steam Community, thinking that was a more appropriate place for it..they were useless (see for yourself), and I've always gotten better answers from Tom's users, so I'm hoping someone might have some insight into this.
It appears to compare checksums of your local files with the cloud and will re-download any invalid files again.
Steam will examine the game’s files and – if any problems are detected – will re-download the corrupted files from Steam’s servers.
To validate a game’s cache, right-click the game in your Steam library and select Properties.
If none of these solutions helps, try Googling the problem – you may have run into a game-specific problem with a game-specific solution or just a more obscure Steam bug.
If a game fails to load, crashes as soon as it loads, or crashes when you reach a specific level, your game’s files may be corrupted.
It's unfortunate that it's the only option but perhaps you can let it download overnight.