The Web Development Blog has posted a quick tutorial on how to make an FTP upload via cURL through a simple PHP script.
FTP hosting is often much cheaper than regular web hosting. The upload with an ftp client is for sure the most common way, but could be a problem for people behind a firewall or without enough rights (capabilities) to install a FTP client. For those a upload via a web form is the best solution.
They mention how to change the upload limitations on your server (for those with access to the php.ini file) and some sample code showing how to make the connection to a remote domain and push the file up over FTP.