I want to create more or less portable (stand-alone, no install, WinXP to Win7) Win32 forms application in Visual Studio 2010. When I create a new project, it appears that the only way I can do it is if I use .NET/CLR, which makes me think it will be very unportable.
What is the preferred way of creating such apps?
Depending on what you mean with portable. An .NET application will function on all versions of Windows that runs the correct version of .NET (even other OS'ses in some cases http://www.mono-project.com/Main_Page). You will only have a dependency of a hudge framework, that I think most people running Windows have by now.
Besides .NET you have other alternatives such as MFC or native Win32 API.
you can either use C/C++ with MFC in VS 2010 or use something different altogehter creating a "native application" like C++ Builder or Delphi.
On the other hand .NET is installed by default in Windows XP SP3 and up - at least .NET 2.0 is always available... see http://en.wikipedia.org/wiki/.NET_Framework#Versions.