Okay, so I've stuck at it and reread many things. The desktop.ini file is the key to this, I think I wasn't leaving a space at the front of the address before and that was the problem, it seems to work ok now. First you need to make a text document called "desktop.ini" and put that in the folder that you want to change the icon for.
Code:
[.ShellClassInfo]
IconResource= \My Icons\Icon.ico,0
I chose to have all my icons in a folder called "My Icons" that I put in the root of my external drive and set as "hidden". I then input the above text in the desktop.ini file directing it to the location of the icon I want to use, in this instance it's the root of the drive (left blank so that it just picks up in any computer it's plugged into) then the My Icons folder and finally the icon I want to use. I also put a comma and zero after it so that it selects just that icon. If you were directing it to a file with multiple icons contained in it like an .exe file you would have to change the number to the corresponding icon in the file.
It seems to work but not always displays right first time, going about your business or unplugging the drive it will eventually refresh. If you have problems with a folder, right click it, go to properties/customize/change icon/reset default, and then start again and it will lose settings for that folder. When you have set the icon properly for the folder I would suggest setting the desktop.ini file to "hidden" and "read only" to avoid it being seen or changed.