Can you please copy/past the following command in Terminal.app and post your output? (Before you do, please hook up your external HDD, don´t mount it in Terminal and also replace /Volumes/MyHDD with your "dir")
id
ls -l /Volumes
ls -l /Volumes/MyHDD
echo ---------------
In case your external HDD uses a space in its name please enclose the argument, like so:
ls -l "/Volumes/My HDD"
In Terminal.app you'll get something like this:
localhost:~ v2r$ id
uid=501(v2r) gid=20(staff) groups=20(staff),402(com.apple.sharepoint.group.1),204(_developer),100(_lpoperator),98(_lpadmin),81(_appserveradm),80(admin),79(_appserverusr),61(localaccounts),12(everyone),502(access_bpf)
localhost:~ v2r$ ls -l /Volumes
**total 8**
drwxrwxr-t@ 35 root admin 1258 Feb 15 2011 OS X externalHDD
lrwxr-xr-x 1 root admin 1 Mar 3 03:53 OS X 10.6 -> /
localhost:~ v2r$ ls -l /Volumes/externalHDD
ls: /Volumes/externalHDD: No such file or directory
localhost:~ v2r$ echo ---------------
As you can see, my permission for the externalHDD is set to
drwxrwxr-t@ 35 root admin for 1258 Feb 15 2011 OS X externalHDD which means that i have full permission +rwx
Without permission you'll get something like this along the lines:
d---r-xr-x-t and ls: externalHDD: Permission denied
You also need to apply one of the following characters "u" to symbolize the file’s owner, "g" for its group, "o" for other (everyone else) for the mode-change clause: o-x.
Now, when you say that you already tried sudo chmod +rwx you missed out on the mode-change clause!!
Depending on your current permission settings, (which i am still not certain of) you can use a command, similar to this sudo chmod -R u+rwX /Volumes/MyHDD but make sure that it is the right one, or you could make it even worse! Refer to the image below, your command-line output and the possible command you yet need to customize, in order to fix permissions for the right group (being u supposingly!)

If nothing works, then backup your data and reformat the HDD to restore default settings. Worst option, but effective.