The UsePassive command doesn't work for the purpose you want it to. It simply requests the FTP server that you connected at first place, to listen on a port instead of the command.
See MSDN for more information on this command - http://msdn.microsoft.com/en-us/library/system.net.ftpwebrequest.usepassive.aspx
Back to your original question, it is for your clients to decide when they should download the files from the ftp server (perhaps, a text file indicating that the upload is complete?). You can only mark it readonly with the default read access though.
A simpler option over the FTPRequest is using the WebClient. See the following example.
using (System.Net.WebClient client = new System.Net.WebClient())
{
client.Credentials = new System.Net.NetworkCredential("scott", "pass123));
client.UploadFile(Path.Combin(ftpServer, filename), "upload", filename);
}
Hope this helps.