<input type='file'>
рассматривается как специальное поле ввода во всех браузерах. Он выглядит по-разному практически во всех браузерах, и его нелегко стилизовать с помощью CSS.
Причина этого заключается в том, что браузеры считают, что это связано с проблемами безопасности, например, когда пользователи могут загружать файлы, не осознавая этого. Поэтому они применяют стандартный внешний вид, чтобы поле всегда распознавалось таким, какое оно есть. Они также не позволяют CSS и Javascript иметь доступ к полю, чтобы они не могли изменить его внешний вид или изменить его значение.
В случае IE8 разработчики браузера решили, что единственный способ, которым пользователь должен иметь доступ к полю, - это кнопка выбора файла. Это серьезное решение разработчиков IE для повышения безопасности. С этим ничего не поделаешь.
Ради любопытства вы должны попытаться увидеть, как <input type='field'>
отображается в других браузерах - Firefox, Safari, Chrome, Opera ... вы будете удивлены, насколько все они отличаются друг от друга тем, как они это делают. Вероятно, это единственный элемент, отображаемый наиболее некорректно.