Is there a way to install .NET on a USB drive, pop it into a machine and get .NET working without actually installing it on a client's local machine?
I am also trying to figure out how to do the same for SQL Server. Is it even possible?
I think the answer will be No.
Anything else would be a major hack, .NET install updates all sorts of things in the system, and its loader assumes those things are in place (e.g. GAC exists, location of compilers, IIS/IE/... integration).
I would also add that when you look at SQL Server, you're looking at a service which needs to be installed and executed, so no go for that as well without major hacks.
No, its not possible for reasons stated by others here.
Your best bet is to require .NET to be installed, and then run your .NET application from the thumbdrive.
If you need SQLServer but dont wanna install that beast you can use SQL Compact (included in .NET) and store the database in the same folder on the thumbdrive.
I sense that the need to "install" .NET & SQL Server to a USB drive has something to do with the overhead of installing them to the hd (size, files, etc). Installing these to a USB is impractical, development-wise. Why not build a Virtual PC instead?