How can I check who has a specific file checked out in TFS?
If you are meaning through Visual Studio 2008 and not in a programmatic way then a simple method to do so is:
Get to Source Control Explorer (Pull up Team Explorer and Click on Source Control). Then navigate to the file you have are checking on and there is a column for which user has that particular file checked out.
Inside Visual Studio, the Solution Explorer interface is fairly limited -- it has to support a standardized feature set in order to interface with all SCC providers.
The Source Control Explorer (view -> other windows -> source control explorer) is native to TFS and much more powerful. Here you can browse the server-side view directly. The details pane on the right has a column where you can see checkout information.
However, if several people have the file checked out, it won't be able to show everything. A complete dump of the checkout records is available from rightclick -> Properties -> Status. Or you can run the command line *tf status $/path/to/item /user:**