Hi,
I would simplify it a bit and absolutely place the anchors so that you can change the width on hover without affecting anything else.
As you are using a transparent png you have to be careful with the shadow compounding so I would shorten the height of the anchors so the bottom shadow isn't changed on hover.
Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
#stages {
position: absolute;
width: 684px;
height: 62px;
left: 31px;
top: 177px;
}
#sprite_holder, #sprite_holder ul {
margin: 0px;
padding: 0px;
height: 62px;
width: 684px;
list-style-type: none;
background: url(http://bopjodesign.com/xactlyit/netaffinity/images/stages.png) no-repeat 0 0;
}
#sprite_holder li {
float: left;
position:relative;
height: 54px;
}
#sprite_holder a, #sprite_holder span {
text-align: center;
height: 54px;
position: relative;
text-decoration: none;
width:100%;
display:block;
}
#sprite_holder span {
position: absolute;
left:0;
top:0;
z-index:2;
}
li#research {width: 174px;}
li#connect {width: 176px;}
li#call {width: 176px;}
li#strengthen {width: 158px;}
#research a:hover {width: 180px;}
#connect a:hover {width: 200px; left:-20px;}
#call a:hover {width: 210px; left:-20px;}
#strengthen a:hover {width: 198px;left:-20px;}
#sprite_holder a:hover {z-index:99}
#sprite_holder span {background:url(http://bopjodesign.com/xactlyit/netaffinity/images/stages.png) no-repeat;}
#research span {background-position: 0px 0px;}
#connect span {background-position: -176px 0px;}
#call span {background-position: -352px 0px;}
#strengthen span {background-position: -526px 0px;}
#research a:hover span {background-position: -2px -62px;}
#connect a:hover span {background-position: -156px -124px;}
#call a:hover span {background-position: -330px -186px;}
#strengthen a:hover span {background-position: -506px -248px;}
</style>
</head>
<body>
<div id="stages">
<ul id="sprite_holder">
<li id="research"><a href="#">Research<span></span></a></li>
<li id="connect"><a href="#">Connect<span></span></a></li>
<li id="call"><a href="#">Call<span></span></a></li>
<li id="strengthen"><a href="#">Strengthen<span></span></a></li>
</ul>
</div>
</body>
</html>
You might be interested in a similar example here with explanation here.
Bookmarks