well i am almost certain you cant use relative positioning with the technique you are using but i have frequently used the opening div as a placeholder for inner relative elements.
E.g if you move your css into an outer div and wrap what you already have. (without moving the position:relative information) you get.
<div style="float:right;width:20%;">
<div style="position:relative;background-color:blue;left:0px;top:5px;z-index:4;">
<p class="yrs">yyyy - yyyy</p>
</div>
</div>
<div style="width: auto;margin-right:20%;">
<div style="position:relative;background-color:blue;left:0px;top:0px;z-index: 4">
<p class="c5">Company</p>
<p class="c4">Job Title</p>
<p class="c4">Description. (This can be quite long and is a key factor for making the height automatic since</p>
</div>
</div>
im still not 100% sure what your after. Hopefully that helps.