Defragmentation of Linux Filesystems
polishlinux.org
polishlinux.org
Really, the best thing you can do to improve your HDD performance is to:
1. Throw out ext3 and replace it with a better file system - consensus seems to be XFS if you have lots of large files, Reiser if you have lots of small ones or JFS for a nice blend. I personally have been using JFS for pretty much everything for a few years.
2. Buy a better hard disk. Good SATA disks are blazing fast these days. Get a Serial Attached SCSI RAID if the lack of speed is costing you money.