How does FTP servers handle concurrent access to the same file, i.e. if one user is updating a file while another is reading the same file? Should I be worried about getting corrupt data? Is it dependent on the FTP server or even the operating system?
It depends on the FTP server. For example, Pure-FTPd uses a temporary file and renames it. vsftpd uses locks. I don't know what the various Windows servers do.
Rather than having users upload and download from the same directory, you might want to have them upload to one directory, verify the contents, then move it to a download directory. You might want to scan for viruses, trojans, truncated files, bad image formats, etc.