An excellent feature would be to utilize free space across ALL installed drives. This way if a drive is full, it can still be defragmented using free space on other drive(s) where it is available.
For example, I want to defrag F: drive, but it only has 4% free space, however G: drive has 60% free space that could be utilized for a temporary swap file during the defrag process.