I had the same problem before. Fast read access to external USB HD but painfully slow write access. The problem turned out to be the fact that subfs was mounting the external HD with the sync option. This causes the write operations to wait until completion before continuing with the next one. This is done for safety of data on external media in case of accidental disconnection. The normal internal HD's are mounted without the sync option.
To speed up write access to the external HD, just remount with the 'nosync' option. Eg initially, mount shows the USB HD mounted with 'sync':
/dev/sdc6 on /media/usbdisk_2 type subfs (rw,nosuid,nodev,sync,fs=reiserfs)
Run mount command to remount with nosync like this:
mount -o remount,nosync /dev/sdc6 /media/usbdisk_2
Now mount shows:
/dev/sdc6 on /media/usbdisk_2 type subfs (rw,nosync)
and you can enjoy full speed writes. There's probably a way to configure subfs to do this permanently but I haven't bothered looking into it yet.