First, make sure you have a backup of the system, before going further.
Windows 7 has an image backup option that should capture everything
for you. That's in case there are side effects from forcing the
deletion of windows.old . (There might just be a good reason
why it won't delete, you never know.)
http://www.intowindows.com/wp-content/uploads/2010/01/Createsystemimage_thumb.jpg
There is some info here, if you're having problems still. It
uses a combination of "takeown" and "cacls" to whip that
thing into shape, so you can delete it. (There are probably
GUI equivalents, with the ability to set the whole tree.)
Disk Cleanup should be handling those details for you, but
if not, you still have other tools available from a command prompt.
http://www.howtogeek.com/howto/windows-vista/how-to-delete-a-system-file-in-windows-vista/
Sooner or later, you'd going to have to learn more about TrustedInstaller.
http://en.wikipedia.org/wiki/DLL_Hell
"Windows Vista and later use a special TrustedInstaller service to
install operating system files. Other user accounts, including the SYSTEM,
have no access to overwrite core system binaries. Windows 7 expands this
functionality to some critical parts of the Registry."
So stuff you used to be able to do easily, has an extra step now. I
ran into this just yesterday, while trying to edit the Registry.
HTH,
Paul