There are 2 ways to allow customers to upload their own files to your website.
Separate page asking for the file, uploads file to your site, emails the administrator the path to the file. This method is not tied to a customer account, only allows them to upload a file.
Attach a file to a product in the cart as a personalization option. This method ties the image directly to the product in the cart, but does not tie it to a customer account.
Method 1: Separate Upload Page
For method number one, simply add a link to your site using Site Explorer or any custom html block that points to the UploadFile.aspx page in yourdomain.com/store/UploadFile.aspx. Site explorer manages that link automatically for you if you choose the "Named Links" options and pick Upload File in the dropdown. This page also shows the Upload File Success page after the file is successfully uploaded and sends a system generated message to the administrator that a new file was uploaded, containing a link to the file and the customer name and basic information.
Any theme options for this page are housed in the Theme settings for the "Upload File" page, where you can add headers/footers and change some of the look and feel of the page. The success page is also themable.
Method 2: Upload File Product Pesonalization
While in the product editor, go to attributes and personalizations tab. Add a personalization of the type "upload file", which will add a browse for file option right on the product page. This file will be uploaded to the server and attached to the item when the add to cart button is clicked. Then the user can edit the file and re-upload a different one if necessary too.