Una solucion bastante penosa que se me ha ocurrido, inexacta, pero que consigue independizar el campo de texto del boton.. y tal vez retocando algo.. quiza mejore:
Código PHP:
<input type="file" id="explorador" style="width:500px; position:absolute;">
<input type="text" id="explo_caja" style="position: absolute;">
<script>
elExplo=document.getElementById("explorador");
elExplo_caja=document.getElementById("explo_caja");
elExplo.onchange=function() {
elExplo.click();
elExplo_caja.value=elExplo.value;
}
</script>
<style>
#explo_caja {
border: solid 1px red;
font-size:10px;
font-family:tahoma;
width:400px; height:21px;
}
</style>
(teniendo en cuenta que el boton ocupa 100px...)
Lo he conseguido hacer tambien personalizacion completa, pero solo para IE por el metodo click().
Enfin, algo igual sacamos entre todos.