Um eine Datei zu defragmentieren muss in der Theorie der dazu benötigte Platz nochmal auf der Platte frei sein. Sprich: soll eine 4 GiB-Datei defragmentiert werden, müssen auf der Platte mindestens 4 GiB (meist mehr, dank Dateisystem, denn die 4 GiB sind nur die Nettolast) frei sein. Ist dies nicht der Fall, kann die Datei nicht defragmentiert werden und wird übersprungen. Deshalb kann ein Tool auch schnell fertig sein (Windows zeigt ja extra ein Protokoll an und zeigt, welche Dateien nicht defragmentiert werden konnten).
Defraggler kenne ich nicht - vielleicht ist dieser tatsächlich in der Lage mit Hilfe von Auslagerungsdatei und RAM nicht auf freien Plattenplatz pro Datei angewiesen zu sein.
In keinem Fall dürfen Programme Dateien oder ganze Festplatten während der Defragmentierung in Beschlag haben, denn Dateien, die "in Verwendung" sind, können (in der Theorie) nicht defragmentiert werden, da auf sie exklusiv zugegriffen werden muss. Auch hier kann Defraggler u.U. mehr (aber unwahrscheinlich). Antivirenprogramme haben aber stets Zugriff auf irgendwelche Dateien oder ganze Platten - diese müssen also unbedingt deaktiviert, besser sogar gänzlich beendet werden, bevor du die Defragmentierung startest. Die meisten Defragmentierungsprogramme beginnen (ohne Meldung) ihre Arbeit einfach von vorn, wenn sie feststellen, dass sich Festplattenänderungen während ihrer Arbeit ereignet haben. Letztere sind halt unbedingt zu vermeiden - also auch alle anderen Programme beenden, die laufen.