My app requires that the use manually copy a file from their PC to the SD card in a subdirectory that my app creates there (or I will look for it in the root directory). So
To supplement Andy's answer. My findings with the Samsung Galaxy Tab have been that:
Environment.getExternalStorageDirectory() also returns the internal memory "/sdcard/". However unlike the Galaxy S, the actual SD card appears at "/sdcard/external_sd/".
When mounted with an 'external' SD card, I can report two extra drives appear in Windows, one for the internal and one for the external sd card.
Interestingly enough, I'm using a samsung galaxy s at the moment without an external SD card, and using Environment.getExternalStorageDirectory(), returns me a location in the internal SD card (/sdcard/), which is fine. I think if you also had an external SD card as well, you'd have the option to use the folder /sdcard/sd/ to put things specifically in the external SD card. I guess you'll have to see if that sub folder exists to tell if you can put things in an external or if you just have internal. This post also discusses the point:
http://androidforums.com/samsung-galaxy-s/176109-internal-external-sd-card.html
Although it isn't specifically the question you asked, I think the answers to this question may also give you the information your looking for:
Programmitically accessing internal storage (not SD card) on Verizon HTC Droid Incredible (Android)
As regards to what the device looks like when it's mounted (i.e. the usb cable is connected and file copying is selected from notifications) and attached the PC, it shows as just the one extra drive, which is my internal SD card. I must admit, I couldn't say what would happen if the device also has an external SD card as I don't have one to try!
Hope this helps! :)
Andy.