My first recollection of a boot time defrag was in an early version of Diskeeper, sometime around 2000. When I bought PerfectDisk 7 it had a better boot time defrag, that sorted out the metadata files that you can't access once the OS is running. PerfectDisk 8 and 2008 also have this feature.
Then there is PageDefrag from Sysinternals, that defrags the registry, hibernation and page files, when it can. I haven't had much success using this on Windows Vista. Not surprising, since it was published in November 2006.
Then there is the freeware UltraDefrag, which can do a much more general job of defragmenting all kinds of files at boot time. I have had great success with this on Windows 2000 servers, as well as workstations. It doesn't manage to defrag the MFT though, but this feature is on a future "things to do" list. I have stopped using UltraDefrag for any other kind of defragmentation, because I don't like the user interface, but it's brilliant for boot time defrag. I have installed it on a few servers so that it can have a go at tidying things up when none of the server's services are running.
UltimateDefrag 2008 has finally released its own boot time defrag module, and claims
"The UltimateDefrag 2008 boot time/system file defrag module is a world first in what it enables you to be able to do when it comes to defragging and moving system files to areas on your drive that further enhance performance."I have downloaded the new version and plan on running some tests to see how it works. It's a free upgrade for existing UD2008 owners, and until the end of the year the usual price of US$ 39.95 has been reduced to $29.96 for new customers.
Update 16 Dec 2008: See KB312067: "Shadow copies may be lost when you defragment a volume". It seems that the Shadow Copy service doesn't work terribly well on drives where defragmenting is being done. This affects any kind of defrag, not just at boot time.