For uploading there are two ways that this can be done.
The first method involves overwriting all the files that were previously uploaded to your web server, while the second method involves deleting all the old files and directories, and then uploading the new scripts. In this tutorial we will use the overwrite method.
Having renamed the upload folder as specified in the previous step, you should load up your FTP client of choice. In this example we will use Smart FTP.
Connect to your FTP server and with the new vBulletin files in the local pane and the existing old files in the remote pane, drag the forums directory into the parent directory of your remote vBulletin installation as shown here:


- All text files to be transferred in ASCII mode
All files containing plain text from the vBulletin package should be transferred in ASCII mode.
Text file types you will find in vBulletin are: .html, .php, .js, .xml, .css. - All non-text files to be transferred in Binary mode
The remaining files, which are mostly images, should be transferred to your web server in Binary mode.
Binary file types used in vBulletin include: .gif, .png, .jpg, .ico.
Warning:
It is extremely important that you upload all the files from the latest vBulletin package, including the entire contents of the install directory.
Failure to upload all the files may result in the upgrade script being unable to successfully complete the upgrade process.
Failure to upload all the files may result in the upgrade script being unable to successfully complete the upgrade process.

<Added note by Floris>
The same goes for many ftp clients, make sure you have it set to overwrite files, do not skip or resume files while uploading!
Upload to a temporary copy of your vB production directory, then when the upload is complete, switch the directories and continue from there.
The actual upload, after you've prepared the files, is the longest part of the server downtime. The objective with this method is to complete the upload of new files before you have to take down ("turn off") your forums.
Here are the steps:
1. Complete all file preparation as per the previous step, "Preparing the vBulletin files for Upload".
Then, before you upload any files go to step 2 here.
2. On your production server, COPY the entire vBulletin directory (or "folder") structure to another temporary directory. Be sure to preserve all attributes of ownership, permissions, etc.
For example, if your vB forums are in a directory called "vbbs", then you might copy it to one called "vbbsupdate". Your forums in "vbbs" will keep running for now.
On *ix at the command line use (e.g.)
"cp -pr vbbs vbbsupdate"
3. Upload your prepared vB update files to your temporary "vbbsupdate" directory as described above in the "overwrite" method.
REPEAT: upload to your temporary directory; in this example the one called, "vbbsupdate".
4. Wait till the wee hours of the morning to minimize impact on your traffic.
5. Turn off your forums in the admin CP.
6. Back up your database so that the backup is as fresh as possible.
7. Switch the directories by first renaming your (e.g.) "vbbs" directory to "vbbsold" and then renaming your "vbbsupdate" directory to "vbbs" (changing the names to match your setup, of course).
8. Run the update script as described in the next step, "Running the vBulletin Upgrade Script".
Good luck. The few times that I've done it, it runs pretty smoothly.