20 gig is small for an OS partition. I like XP partitions to be at least 40 gig or you will run out of room fast as you discovered. Run disk cleanup. Use the "advanced" tab in disk cleanup to also delete all but the last restore point. If you don't use hibernation, disable it then delete the hiberfil.sys file. Reduce the size of disk space that the trash can uses and also the amount of space reserved for system restores.
You can also use windirstat to locate large files and folders.
http://windirstat.info/