Мадагаскар остров, поэтому естественно звучит предлог "на" (поскольку остров выделяется как некоторая поверхность, выступающая над водой в море или озере).
Про Великобританию не говорят "на", потому что само слово подразумевает, что это страна (окончание "-ия"). Если говорить про "Британские острова", то надо говорить "на". Аналогично Гренландия.
Сингапур "в" потому что он воспринимается моряками как огромный город, занимающий весь остров, а не населенный пункт на острове Сингапур. "На Сингапуре" звучит как на крышах сингапурских небоскребов.
Новая Зеландия тоже звучит как страна ("-ия"), к тому же она расположена на двух огромных островах, а не на одном острове.
Для Украины было употребление обоих предлогов, и "на" и "в". "На" обычно употребляется для обозначения местностей около рек и горных массивов (Кубань, Дон, Алтай, Кавказ), "в" для лесов и пустынь (Сибирь, Сахара, тундра). Возможно предлог "на" связан еще с тем, что Украина является как бы предгорьем Карпатских гор, т.е. применяется традиционный предлог для горных местностей. Однако, в силу больших размеров Украины, предлог "в" тоже звучит гармонично.