Имхо. Если маленький файл грузиться без проблем, а большой не догружаться, то первое что мне приходит в голову, это что скрипт вылетел за timeout. Соотвественно директива max_input_time.
У меня некоторые проекты стоят на ZWS (www.zeus.com), так вот там phpinfo показывает upload_max_filesize = 8мб, а в ZWS стоит 2мб, при этом работает именно оно.
Ну это конечно левый случай, но мало ли. А так скорее всего по таймауту отключается.