1- Receives as a parameter the filename to be downloaded
..and could also:
- 1.a- Compress the file to download
- 2.a- Know the speed of the connection and mention: bzipped file name, file size and estimated time to download it.
- 3.a- And, perhaps, even mention the MD5 sum to check with after finishing the download if the user has a way of doing it at his desktop.
Besides, as a starting point, just try creating an icon at your desktop that points to an ftp file at a well configured ftp site. See how easyly it could work. Then try adding the minimum required to fullfill all your needs.
And don't forget one of the newest ways of doing such heavy tasks: bittorrent and .torrent files. Similar users get together to improve the download time and diminish the host work.