I think the problem is that IIS doesn't load the user profile, i.e. the registry hive of the user it is running as. The client certificate is stored in the users registry hive. In Windows Vista or Windows Server 2008 you can configure IIS to load the user profile. Unfortunately you can't do that in Win2K3 or XP. The Visual Studio Development Server has the profile loaded because it is running as the currently logged on user.
I'm not sure but you might have to store the certificate under the default users profile.