Com jquery.post(), os dados são realmente enviados para a página do controlador - como se você clicasse em "enviar". O problema é que uploads de arquivos não podem (ainda) ser processados com javascript (a única exceção é ff 4, eu acho).
A melhor solução que encontrei para uma experiência de usuário coerente é este plugin:http://jquery.malsup.com/ formulário/
Ele lida perfeitamente com o upload via iframe e é bastante leve. Basta usar sua função em vez de post e você ficará bem.