Чтобы заставить его работать в Chrome 12, вы можете просто добавить его в тайм-аут окна 0, например:
window.setTimeout(function(){
fileupload.click();
},0);
Почему именно так себя ведет, я не уверен. В первый раз, когда я столкнулся с проблемой, я попробовал ее с более длительным интервалом, все время уменьшая его, чтобы увидеть, насколько низко вы можете его получить, пока я не заметил, что это даже не требует задержки. Очевидным ответом будет то, что он на самом деле не готов в DOM к тому времени, когда вы запускаете щелчок (элемент есть, но есть ли соответствующие события для него?).
пример: http://jsfiddle.net/HgEga/