My simple advice would be to move or even remove the cancel button.
In it's current state the user will click cancel instead of previous in some cases and one cannot rely on colour differences to help solve this.
You could put the cancel link in a consitent place on all screens and make this consistent with other application canel operations. You could also save a booking as 'uncofirmed' and consider it cancelled if the user navigates away (including accidentally ~), but let them reload and confirm it, then provide a separate 'cancel' operation just for confirmed bookings.
There is some merit in making the cancel operation interaction steps differ from general interaction steps if the operation is critical and requires thought each time. Looking at how iphones handle deleting things might help you with ideas.
~ added in response to question edit