With Hazel 3.0b you can do this with a passed shell script in the rule menu:
ls /Volumes/ | grep "External HD"; This will match when the drive is ejected so long as the '/Volumes/' directory is monitored.
With Hazel 2.xx I'd do something like this, although I'm not sure if Hazel triggers rules on file deletion (directory/volume ejection): Rule monitoring
/Volumes/ then run a script that checks the status of your downloads directory first. If the directory matches what it should be for the volumes mounted, then do nothing. Else, make the appropriate change.
If you're on SL, you can use an app I wrote called AirPort Location. Its free -
http://airportlocation.wordpress.com.
Otherwise, if it were me, I'd write an Alfred script that I'd trigger when I got home.