The command line command "lsof" lists the open files and which processes are using them. Unfortunately, the output is not easy to read.
to see all your Volumes.
Then pick the path to the Volume you want to eject and enter:
and you will see something like
dreschle% lsof /Volumes/iDisk
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mdworker 638 dreschle 6r REG 14,23 21508 16446 /Volumes/dreschler/.DS_Store
which tells you that process "mdworker" is using the file .DS_Store on my iDisk.