No, I certainly wouldn't say that's a good way. Frankly I've never even heard of a need to distinguish between OS for purposes of page layout. The differences in browser renderings (to my knowledge) are completely from the browser, not the OS.
So step 1 is of course to try to get your code to render correctly on all browsers, without browser-specific tweaks. If you're having issues with margins and padding, make sure you start your css with the normal:
since different browsers have different default margins and padding. This will set the both to zero, requiring you to set your own values.
Secondly, and only if absolutely necessary (I haven't had a need in a couple years), you can use conditional comments (see http://www.positioniseverything.net/articles/cc-plus.html for an example) to either have individual styles that are different for IE from everyone else, or even complete stylesheets different for IE.