in reply to CPAN Smoke Tests: Some platforms are meant to be broken
The tool you are looking for is Devel::AssertOS. If you use that in Makefile.PL, then CPAN testers will magically bail out if they're running the wrong platform. The use-devel-assertos script provides a convenient method for updating your Makefile.PL and bundling all the relevant modules.
Within your code, if you want to do different things depending on the platform - for example, you need to write completely different code on Windows and Unix for figure out who the current user is - then Devel::CheckOS is what you want.