You can force an fsck on the next boot by using tune2fs:
Code:
tune2fs -c 1 /dev/hda1
Alternatively, when you remount your partition as read/only, you need to do this from a recovery (maintenance) boot session, not from a normal boot (otherwise, it is always busy as you point out). Then you will be able to do an fsck from the maintenance session.