After you'll pick up basics and you will need some sort of reference book, I'd suggest C# in the Nutshell. I like to have this book my desk, and it's great written :). It's definitely not the book for learning the language though.
If you have any programming experience, you can probably learn the C# syntax in a few hours, and be comfortable with it within a week or so. However, you will not be writing complex structures unless you write a lot of code with it. It's really the same as learning any language: you can learn all the words and grammer fairly quickly, but it takes a while to be fluent.
A book you may want to pick up for learning C# is C# in a Nutshell (3.0) which I found to be very useful, and has been recommended by several people here.
"The scope of local or constant variable extends to the end of the current block. You cannot declare another local variable with the same name in the current block or in any nested blocks." C# 3.0 in a Nutshell, http://www.amazon.com/3-0-Nutshell-Desktop-Reference-OReilly/dp/0596527578/
"The local variable declaration space of a block includes any nested blocks. Thus, within a nested block it is not possible to declare a local variable with the same name as a local variable in an enclosing block." Variable Scopes, MSDN, http://msdn.microsoft.com/en-us/library/aa691107%28v=vs.71%29.aspx
Visual studio express
What you need to know to move from c++ to C#
Charles Petzold Pdf
C# Coding standard\Best practices
C# 3.0 in a Nutshell
Jon Skeet's book review
Good luck :)!
I'm not going to be able to help out with your MonoDevelop question and XSP2 since I haven't used Mono, but I can help with some of your other questions.
When you have an asp.net app, what are the executable scripts (ie. .php for PHP)?
ASP.NET pages have a .aspx extension (although this is configurable). When a page is first requested the ASP.NET run-time parses an ASPX file and compiles a class from it. This compiled class is executed within the ASP.NET application run-time.
.cs files are often associated with a .aspx file by development environments like Visual Studio (this isn't a requirement though you can have .aspx files independent of .cs files). The .cs file defines a class and the class compiled from the .aspx file inherits (or is a sub-type of) this class.
What would be the best way to set up my development box for asp.net development?
Again, I don't know about Mono, so I'll give my recommendation based on Microsoft tools. I'd recommend Visual Web Developer 2008 Express. It's available for free has a lot of the great features of the full-blown product and uses the built-in web server which makes configuring your environment less of a hassle.
I'd also recommend the Web Platform Installer. This will help download and install Visual Web Developer 2008 Express and get you up and running quicklu and easily with other things like the .NET Framework, IIS, SQL Server Express and even open source web applications. It's nice an easy to use.
Any general "non-newbieistic" help source apart from MSDN, on getting started with asp.net?
If you're new to .NET I would recommend getting a good grasp on the language first and then ASP.NET specific stuff.
Best .NET books (in my opinion):
read lots of code, write lots of code and keep a copy of C# 3.0 in a nutshell handy.
The language itself will be the same whatever tutorial you use. Really you just need to know how to compile code using Mono instead of Visual Studio. The basic command line you'll want to use is:
gmcs Foo.cs Bar.cs
with these as the most important command line options:
In terms of reading material, I can recommend C# 3.0 in a Nutshell as it covers the language and the core framework classes.
What do you want to write? If you want to write a Windows client-side app, look into WinForms and WPF (no real need to learn WinForms before WPF, other than the way that a lot of tutorials/books will probably compare WPF concepts with WinForms concepts). If you're looking at a web app, then ASP.NET or ASP.MVC - I don't know whether you really need the "normal" ASP.NET before MVC.
Silverlight is a bit of both, in a way - rich client probably talking to a server for interesting data etc.
Before learning any of these though, I suggest you learn the fundamentals which are one step up from the topics you mentioned - things like how text works in .NET (including encodings and regular expressions), I/O, perhaps threading. Oh, and LINQ :) There are a few books which are very good on this front: