What program are you using?
Reasons why some files remains defragmented are:
1. Lock by the system (pagefiles and system files in use);
2. Not enough contiguous space. For example you have a 300Mb file and your maximum contiguous space is 250Mb you can't defrag it.
Try Executive Software Diskeeper. They have a 30 day trial version. It defrags before Windows boots and can even defrag the pagefile, MFT and directory structure.
...or disable your pagefile, reboot and defrag.
[Edit]
I'm using AusLogics Disk Defrag.