>>170
んー、PHPマニュアルには、
『MAX_FILE_SIZEはブラウザへの勧告に過ぎません。この最大値を 出し抜くのは簡単なことなので信頼してはいけません。
しかし、 PHP側の最大サイズの設定を欺くことはできません。 しかしそれでもMAX_FILE_SIZEを指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、
実はそれが大きすぎて転送できないということを長時間待ったあとで知らされるのを防げるからです。 』

とあるので、

MAX_FILE_SIZE(HTML) < POSTしようとするファイルサイズ < upload_max_filesize(PHP) の場合は、
(MAX_FILE_SIZEを欺くことは簡単にせよ)ブラウザ側で警告が出る。

upload_max_filesize(PHP) < POSTしようとするファイルサイズ < MAX_FILE_SIZE(HTML) の場合は、
ブラウザ側で警告は出ずに、サーバ側から"大きすぎて転送できないということを長時間待ったあとで知らされる"。

ということだろうから、その挙動は合っていると思う。
エラーコード、$_FILES['userfile']['error'] をechoしてみれば分かるんじゃ?