I have use both Cygwin and various iterations of Inerix/SFU/SUA as well as CMD + unxutils and putty, etc. It always feels like fighting the system.
I have really been won over by powershell (despite the name). I now just use powershell with some unixy aliases, a handful of scripts to emulate unixy behaviors and a few native windows ports like vim, infozip, ncftp, curl, wget, etc.
It kind of depends on what you are trying to do. If you want windows to actually be unix then nothing will feel quite right and it will be various flavors of frustrating. If you want to port software then there are lots of options with various pros and cons. If what you want is a powerful text-mode shell and scriping environment where you have a hope of replicating your automations onto servers or your buddies machines then take a hard look at powershell.
@dthree: Please don't sneak in spam by editing questions and adding a link to your own product. The OP of this highly upvoted and accepted answer did not recommend your product and you did not disclose your connection to it. – fixer1234 – 2016-03-11T09:00:28.923
1Superuser doesn't list that when I posted this! Anyhow UnxUtils serves it :) – ukanth – 2009-09-11T13:52:03.717
Sweet. I think that I'll start using that too. – D'Arvit – 2009-09-11T14:12:56.397
The linked question has now been deleted, thanks SuperUser mods. – James McMahon – 2012-05-25T05:19:09.430