I was doing some tests with a named SQL2000 instance called NYSQL\SQL2000. After I had run the tests for three hours, I came to realize, much to my dismay, that the server name used in all the connection strings in the tests was NYSQL instead of the intended NYSQL\SQL2000. I went, "Damn! I just wasted three hours!"
But then after some digging, I found that all connections in my tests were in fact made to the NYSQL\SQL2000 instance--the right instance, even though the server name was only NYSQL--a wrong name--in all the connection strings. To confirm that, I opened up Query Analyzer, and connected to NYSQL. I then executed SELECT @@SERVERNAME, and there, 'NYSQL\SQL2000' was returned.
Whew! I was lucky. But what happened to allow NYSQL to masquerade as NYSQL\SQL2000? Before you even go there, let me rule out the obvious--it had nothing to do with the client configuration. There was no alias on the client machine.
This is not a tricky question, and many of you may have already run into it. Nevertheless, it's interesting, and at the very first sight, non-intuitive. So it's a good exercise to be left for the reader who hasn't had the experience.