Diskeeper from
Executive Software is great - much faster than the defragger included in XP and configurable. eg, you can configure it to do a one-off defrag at boot time which defrags those files normally locked because they are in use by the system.
You can also configure it to run to a schedule, or when it thinks defragging is appropriate, and to do that in the background, etc.
There is a
lite version available
here. It's not configurable, you can only defrag one volume at a time, manually, but it'll give you a taste. It's version 7. Later full versions have an improved GUI, as well as improved performance and features.
AA