MyDefrag (formerly JkDefrag) is a completely free program that will analyze, defragment and consolidate free space on hard drives and USB devices.
The program can analyze the current status of selected drive and will display statistics with total space and fragmented items. Based on these reports you can run a defragmentation if you have many fragmented files.
It works with standard hard drives, but also can be used for USB devices. Supports custom scripts, if you are a programmer.
Can be scheduled only through Windows Scheduled Tasks menu from Control Panel.