En el código HTML tienes que especificar disabled="disabled" y también en el CSS:
Código:
input[type=button][disabled=disabled], input[type=submit][disabled=disabled], button[disabled=disabled]
{
border: 1px solid red;
color: green;
background-color: yellow;
}
En IE se te seguirá viendo la sombra, así que como bien ha dicho chivassa, si no te sirve eso, tendrás que hacerlo con imágenes. Tienes que especificar value="" en los botones y aplicarles estilos con imágenes de fondo que incluyan el texto del botón:
Código:
#boton1
{
width: 200px;
background-image: url("img/boton1.png");
}
#boton1[disabled=disabled]
{
background-image: url("img/boton1disabled.png");
}
Yo personalmente te recomiendo la primera ya que prefiero que el botón se vea ligeramente diferente entre diferentes navegadores, y además no creo que te cueste mucho darle un estilo que no quede mal con la sombra que IE añade al texto, que hacerlo con imágenes y arriesgarme a que en algún navegador que no lea la propiedad background-image se me vea un botón sin texto.