Creo que te has confundido poniendole 500px al padre pero ahí va una solución
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="es">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Documento sin título</title>
<style type="text/css">
div#padre {
height:28px;
width:500px;
background-color:#4f4f4f;
}
div#left {
float:left;
height:28px;
width:100%;
margin-right:-5px;
background-color:#c39;
}
div#right {
float:left;
width:5px;
height:28px;
background-color:#cc6;
}
</style>
</head>
<body>
<div id="padre">
<div id="left">left</div>
<div id="right">right</div>
</div>
</body>
</html>
Con poner en div#padre {width:100%; } obtendrás lo que quieres creo...
Un saludo.