Okay, so this is a hot topic, and so far i was unable to get a 100% working solution. after much struggle.. here is the code to make your buttons look pretty
first you need jQuery (to do some wrapping) you can get the latest version here.
the above will automatically wrap all your buttons with two spans
then you will need some css:
input[type="submit"]{ color:White;}
.input-button { display: inline-block; height: 23px; vertical-align: middle; *vertical-align: middle; /* only for IE */ background: white url('BlueRight.png') no-repeat right top; cursor: pointer;}
.input-button span {display: block; _display: inline-block; /* only for IE6 */ line-height: 23px; padding: 0 20px; height: 100%; color: black; background: url('BlueLeft.png') no-repeat left top; overflow: hidden; position: relative;}
.input-button:Hover {display: inline-block; height: 23px; vertical-align: middle; *vertical-align: middle; /* only for IE */ background: white url('GreenRight.png') no-repeat right top; cursor: pointer;}
.input-button span:Hover { display: block; _display: inline-block; /* only for IE6 */ line-height: 23px; padding: 0 20px; height: 100%; color: black; background: url('GreenLeft.png') no-repeat left top; overflow: hidden;position: relative;}
.input-button input { color:White; position: absolute; top: 0; left: 0; height: 100%; width: 100%; cursor: pointer; border:0px solid Transparent !important; background-color:Transparent;}
.input-button:link, .input-button:visited, .input-button:hover, .input-button:active { color: White; text-decoration: none;}
Please make sure to point your images to the right location.
below are the images i use:

I have tested this in firefox, IE7, IE8 and Chrome
Enjoy!