You might be able to free some space by removing any windows update files in the windows directory - they are hidden and usually start with $nt... downside is that you won't be abl eto fallback any patche/service packs that may have been installed since the last Windows fresh install.
defraggler (free to download and use) is able to defrag even with low space with the caveat that it won't do a perfect job and will probably be slow.