I found out my Windows 7 installation which is more than a year old has a bloated Windows (C:\Windows) directory (20GB). Correct me if i am wrong but i don't think this is normal. Is there a way i can fix this and prevent it from happening?
It doesn't seams wrong that Windows7 takes 20GB after installation.
One thing you can do to shrink your windows install is remove the uninstall files for the service packs. Running the following command as a elevated command prompt (right click
Run as Administrator) will remove the uninstall files and free up some space
dism /online /cleanup-image /spsuperseded
However I am willing to bet that windows is not taking up as much space as you think, the windows sxs (Side by side) system uses Hard Links on the files. Most tools (including windows explorer itself) will count both copies of the file when calculating folder size, however due to how hard links work both copies use the same physical spot on the hard disk so it does not take up that much room.
Programs like WinDirStat are hard link aware and can give you a more accurate picture of disk space usage.
the only way to shrink Windows is to uninstall Windows Updates which are replaced by newer ones. Remove old IE updates and this can reduce the size a bit.