"に" is used to emphasise the reasons in these sentences. All expressions you've picked up are linguistically right, but the problem they two sound unnatural is here and it depends on what the speaker really want to tell us. http://blog.livedoor.jp/s_izuha/archives/2427356.html
It makes us focus on the reasons.
It makes us focus on the facts.
寒さのために死んだ。 → It is because it was too cold, the person died.
寒さのため死んだ。 → The person did die because it was too cold.
And I also feel not only "日本は島国のために" but "日本は島国のため" to be odd. "寒さ" is a outside cause and the noun could be the reason, but "島国" is not the cause. No island can erase Japanese border on land. Of course, "being island" is the cause. I mean "日本は島国のため" is not enough and, strictly, it should be "日本は島国であるため." Both of "日本は島国のために" and "日本は島国のため" aren't precisely right, althogh we Japanese often use it.
The reason why your friend said it sounded wrong is the emphasis effect of "に".
As I said, "に" in this sentence emphasises the reason. To be precise, I meant it was the reason which was a noun. So this "に" emphasises only "島国" even though the actual reason is not "island" but "being island." I think it makes itself a little odd.