If you include a custom field with type = FILE in a Profile, and embed that Profile in an Online Contribution page - the field shows up in the initial form (Main.php) and can be populated by the user. However, we don't persist the data for the uploaded file (not sure we actually upload it either), and on the Confirm page - we show the Browse/Input form field element again (instead of displaying the uploaded file name).
We should fix the code to handle this case - which will mean some additional logic to pass the uploaded file handle to Confirm / postProcess().
NOTE: This issue does NOT imply solving the contribution custom field issue for "notify" type Payment Processors like PayPal Std and Google Checkout. I am filing a separate issue to suppress custom fields on Contribution pages which use these processors (until we figure out a decent way to handle them).