I don't really get it either. When a user chooses something from a drop-down menu it's going to be at the top. Why don't you just simplify it?:
<select name="postage">
<?
$pp = $_POST['charge'];
if (empty($pp)){
$pp = "next";
}
if($pp == "next"){
echo "<option value='next' selected>Next Day £3.50</option>";
echo "<option value='1st'>1st Class £2.00</option>";
}else{
echo "<option value='1st' selected>1st Class £2.00</option>";
echo "<option value='next' selected>Next Day £3.50</option>";
}
?>
</select>
If $pp has a wide range of potential values, I would use a switch() to determine which order to put the options in.