OS dependant development?
There is no need for you to tie your choice of development platform to an OS or vendor. There are plenty of cross-platform technologies that follow standards. The problem with Microsoft is that they rarely follow standards when implementing their technology, and of course, they are not cross-platform.
Standards!
When starting my development career I carefully chose to not use .NET or Windows-only technologies for anything. The reason being that I didn't wanted to limit my freedom to choose tools to what a vendor has to offer or allows there to be. Also because I found more value in open-source communities rather than vendor support.
When you have large communities standards —formal or informal— emerge; look at Java and python, both have very well defined and consistent API design as opposed to the many APIs of .NET. Look at web technologies such as HTML, javascript and CSS.
Don't limit yourself to one language
There is no reason a single information system cannot rely on several languages and technologies, specially when you consider the web. Right now I'm developing a solution that uses Java (for a desktop frontend), PHP (for the backend and to render a web frontend) and javascript (for the widget-oriented web frontend).
Once you understand languages as tools you will know which one is best for each job.
Talk to people; think cross-platform
Ask others —even here— of what technologies do they use for each task, and start trying to map your current knowledge. Are you more into system programming?, look for cross-platform libraries. Do you program in C#?, study Java; do you program in Visual C++? start using g++; are you into web?; try PHP (object-oriented PHP, test out frameworks like Symfony not sloppy functional PHP); are you enjoying python?, stick with it and study its market (e.g. Django for web).
The world —as opposed of what Redmond would like you to think— does not live and breathe Microsoft, specially in the web world.
Welcome to the outside world
It might not be that hurtful at all to stay away from MS if you learn fast enough to feel comfortable looking for a Python or whatever-non-ms-technology job. I don't think there is a definite answer, but I'd say that if you lost track of the details of a major release of .NET, you could start feeling like a stranger to the MS market. Also, and IMHO, having other languages as part of your skills description in your resume will give you extra value as a developer.
Edit: As Conrad suggests and/or implies in the comments, Mono might be a way to ease your transition.