Sei un grande 
Non c'è stato neanche bisogno di mettere il z-index ho semplicemente risolto così:
codice:
<style>
ul, li{
margin:0;
padding:0;
}
ul{
list-style:none;
}
#nav li{
float:left;
margin-left:30px;
position:relative;
}
#nav li a{
display:block;
width:100px;
text-align:center;
background-color:rgba(0,0,0,0.2);
border-radius:1em;
box-shadow:0 3px 5px #666666;
text-decoration:none;
color:#F3EA3A;
}
#nav li a:hover{
background-color:rgba(0,0,0,0.4);
}
#nav li ul{
display:none;
position:absolute;
}
#nav li:hover ul{
display:block;
}
#nav li ul li{
float:none;
margin:5px 0 0 0;
}
</style>
Sinceramente non capisco perchè se in absolute i li del menu principale e in relative il sottomenu questo non mi provoca più l'adattamento da parte del div menu.
Se hai pazienza potresti spiegarmi cosa succedeva prima e cosa succede ora?