After a year's use without an issue, all of a sudden, CiviMail started behaving odd. When creating a new mailing, whenever I submit the Test page, the mailing gets unexpectedly and prematurely scheduled for an immediate delivery. This is true for both the "Send test" and "Next>>" buttons on that page. I haven't tried the "Save & Continue Later" one.
It baffled me I was unable to find any, even remotely related issue in the CiviCRM's forums. Then, while gathering information for a bug report, I managed to work out that the Firefox's Auto Pager add-on was responsible for this behavior.
The Auto Pager add-on is a pretty cool one. Whenever viewing a "pager-ed" page, like Google results, or a Drupal view with pager enabled, it automagically loads content of the next page right at the bottom of the current one. Thus, it saves you a heap of clicks and time spent waiting for all those next pages.
The Auto Pager tries hard to be smart about figuring out how to get to the content of that next page. Most of time this is pretty easy as the pager interface has a fairly common format and more often than not it is just a matter of following the Next link.
However, in cases like mine, Autopager has hit the wall and goes wild submitting forms as it sees fit. Not cool. It easily gets confused by the "Next>>" buttons in the CiviMail interface and emulates clicks on them in order to access content of next page. And since the Test page is previous to the Schedule Mailing one, Autopager even manages to click the Submit button, most probably because of word next in the button element's id and name attributes.
I've learned the hard way, having had to cancel an unfinished mailing twice, unintentionally sending it to the first ten recepients on the list. To prevent this behaviour, make sure to disable Auto Pager on your site, or at least disable its Smart Paging feature.