Actually, I'm surprised you manage to get anything greater than 7 MB on Dreamhost using PHP. Have you compiled a custom version PHP or are you using your own instance of PHP with a modified php.ini file?
Standard php.cgi implementations on Dreamhost have an upload_max_filesize setting of 7 MB, and a post_max_size of 8 MB. Without modifying this (using one of the methods I asked about in the first paragraph - instructions for which are available in Dreamhost Wiki), php based uploads are limited to that value.
note (from the php manual:
If the size of post data is greater than post_max_size, the $POST and $FILES superglobals are empty. This can be tracked in various ways, e.g. by passing the $GET variable to the script processing the data, i.e. , and then checking if $GET['processed'] is set.
You can confirm the status these, and other settings, of your instance of PHP by running a phpinfo program:
// Show all information, defaults to INFO_ALL