Rewrote somethings to use the strtotime to create UNIX Timestamps to make the comparisons (which may be one extra step, but the comparison works better in my opinion, since you don't have to account for the leading 0's in the comparisons - which is where I believe your problem is stemming from), and it worked for me. (Of course, what you had worked for me too, so I would suggest you echo your $_POST variables to make sure they are correct...) This also gives you some flexibility to change the start and end times without it being hardcoded in your comparison...
Also, keep in mind, this doesn't account for thos times when someone may forget to set an hour and minute, so you need to do some error-checking on empty hour and minute variables in your POST array.
<?
$_POST['hour'] = "05";
$_POST['minute'] = "45";
$enter_time = strtotime($_POST['hour'].$_POST['minute']);
$start_time = strtotime("0700");
$end_time = strtotime("2100");
$total = 100.00;
if ((int)$enter_time >= $start_time && (int)$enter_time <= $end_time) {
echo $total;
} else {
echo ($total * 1.2);
}
?>