I'm late to realise this, I admit. But this article from rediff, dated March 5, just passed on to me by my brother, makes hilarious reading.
Apparently, when the ICC's world cup schedule said "B2 plays D1 on April 15", this did not mean anything as naive as "the second-placed team in group B plays the top-placed team in group D". Instead, it meant -- or was supposed to mean -- "India plays Pakistan". No matter in what order they finished the group games.
You see, the ICC (did I just recently call them sordid and money-grubbing, even before I knew about this particular scheme of genius?) realised that it would be so much better for TV audiences to schedule that match on a Sunday. (Similarly, to schedule India-Australia and India-SA for Saturdays.) So they came up with the following bright idea: B2 is not the team that finishes second in group 2, but the team in group 2 that, of the two qualifying teams, was ranked lower before the tournament started. Makes sense, right?
To quote that rediff article: "Neat. This way, no way will a surprise result upset the television applecart."
Almost no way.
But now that the applecart has been (multiply) upset, it appears that the ICC has abandoned this idea of D1 being the "pre-tournament higher-ranked team": D1 is now Ireland, and the sellout match on April 15 is Bangladesh-Ireland. At least the ICC does its bit to encourage the minnows.