Ich würde auf jeden Fall den Windows defragger nehmen, da der die SuperFetch Daten zur Positionierung der Dateien verwendet.

Der weiß zum Beispiel genau in welcher Reihenfolge deine Treiber beim Bootprozess geladen werden und der ordnet sie dann auch dem entsprechend auf der Festplatte an, sodass sie schnell am Stück geladen werden können.

Es ist auch nicht so, dass der Defragmentierungsprozess schneller geht, wenn du es zuvor mit einem anderen Programm defragmentierst. Eher im Gegenteil.
Jedes Programm hat seine eigene Vorstellung davon, was eine defragmentierte Platte bedeutet.
Wenn O&O Defrag sagt, dass die Platte zu 0% fragmentiert ist meint PerfectDisk zum Beispiel, dass sie zu 60% fragmentiert ist.
Defragmentiert man sie dann mit PerfectDisk, dann meckert O&O wieder rum und meint es besser zu können.
Ein wirkliches Maß für die optimale Anordnung der Dateien gibt es nicht. Das sieht jedes Programm anders und jedes Program wird die Dateien wieder komplett neu anordnen, so wie es das für sinnvoll erachtet.

Ich würde wie gesagt den Vista Defragger verwenden und den im Hintergrund laufen lassen. "defrag -c -i" wird stadardmäßig jede woche ausgeführt und das defragmentiert dir alle Platten mit der niedrigsten Priorität und das auch nur, wenn der Rechner mindestens für 3 Minuten am Stück im Idle-Zustand war. So lange du also daran arbeitest dürfte der Prozess gar nicht arbeiten.

Es beinflusst dein System also überhaupt nicht. Dafür kann es aber auch Ewigkeiten dauern, aber wen stört da schon, solange es das System nicht beeinflusst?