I've combined a bunch of the techniques above to provide something that doesn't totally suck with js turned off and is even better with a bit of jQuery. Now that browsers support for subpixel letter-spacing is improving, it's really nice to use it.
jQuery(document).ready(function($) {_x000D_
$('.nav a').each(function(){_x000D_
$(this).clone().addClass('hoverclone').fadeTo(0,0).insertAfter($(this));_x000D_
var regular = $(this);_x000D_
var hoverclone = $(this).next('.hoverclone');_x000D_
regular.parent().not('.current_page_item').hover(function(){_x000D_
regular.filter(':not(:animated)').fadeTo(200,0);_x000D_
hoverclone.fadeTo(150,1);_x000D_
}, function(){_x000D_
regular.fadeTo(150,1);_x000D_
hoverclone.filter(':not(:animated)').fadeTo(250,0);_x000D_
});_x000D_
});_x000D_
});
_x000D_
ul {_x000D_
font:normal 20px Arial;_x000D_
text-align: center;_x000D_
}_x000D_
li, a {_x000D_
display:inline-block;_x000D_
text-align:center;_x000D_
}_x000D_
a {_x000D_
padding:4px 8px;_x000D_
text-decoration:none;_x000D_
color: #555;_x000D_
}_x000D_
_x000D_
.nav a {_x000D_
letter-spacing: 0.53px; /* adjust this value per font */_x000D_
}_x000D_
.nav .current_page_item a,_x000D_
.nav a:hover {_x000D_
font-weight: bold;_x000D_
letter-spacing: 0px;_x000D_
}_x000D_
.nav li {_x000D_
position: relative;_x000D_
}_x000D_
.nav a.hoverclone {_x000D_
position: absolute;_x000D_
top:0;_x000D_
left: 0;_x000D_
white-space: nowrap;_x000D_
}
_x000D_
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>_x000D_
<ul class="nav">_x000D_
<li><a href="#">Item 1</a></li>_x000D_
<li><a href="#">Item 2</a></li>_x000D_
<li class="current_page_item"><a href="#">Item 3</a></li>_x000D_
<li><a href="#">Item 4</a></li>_x000D_
<li><a href="#">Item 5</a></li>_x000D_
</ul>
_x000D_