as far as I understand the defragging apps (both built-in and third-party) is that they each have different algorithms, which is why you get fragments on one after running the other and differring preferences on which to use.
the built-in defragging app in Windows, unless I've read wrong, prioritizes based on frequency of access of a particular .exe and its supporting files. It doesn't care about empty space contiguity as it can just "Defrag it later"
third party apps (I pick Defraggler b/c you mentioned it)
Defraggler organizes based on a similar structure as the Windows defrag, but it also takes into account the empty areas. i.e. if there's a space between files, Windows Defrag won't care but Defraggler will say it's a fragmentation and "fix it".
they both do the same thing and there's not really any advantage aside from keeping future fragmentation to a minimum using Defraggler. But again, different defrag apps can do things differently.
in any case, check to see if your defrag app of choice takes any options if you can stick it into "scheduled tasks". for example, see below. XP's defrag can get put into Scheduled Tasks and given a drive and any "extra" options like forcing defrag if analysis returns "Not enough free space". then you just schedule it to your liking.
Code:
Code:
C:\\WINDOWS\\system32\\defrag.exe c: -f
i'm sure most, if not all, third party defraggers should have a built-in scheduler or at least be runnable in the manner above
edit---------------
geez, i have such a habit of making long posts nowadays