Would something like this work?
<div class="wrapper" style="position:relative;">
<div class="transparentBG" style="position:absolute;top:0;left:0;">Text</div>
<div class="overlay" style="position:absolute;top:0;left:0;">Text</div>
</div>
You can set how the styles change by having ":hover" versions of each class.
You'll have fun with multi browser support though.
Alternatively you can use two images:
<style>
.transparentBGOnHover { background-image: url(../images/red.png); }
.transparentBGOnHover:hover { background-image: url(../images/transparentRed.png); }
</style>
<div class="transparentBGOnHover">
Text
</div>
IE6 can't handle the transparent PNG correctly without a DX filter.
You may also need to handle the hover via javascript for IE6 and IE7 as they don't support :hover correctly (despite the fact that IE5.5 invented it)