<p>What are my options for programmatically accessing a Microsoft Project file? What are the pros and cons of each approach?</p>

<p>I will basically need to import all data from the file into another data structure. Using the Office Interop assembies is low on the preference scale. </p>

The Microsoft Office API provides programmatic access to MS Project. I have only used it for Word and Excel so I don't know how rich the interface is - you will have to do some digging around on MSDN to find out what you can and can't do.
One of the Java projects at my company uses a commerical product by
Aspose
which allows applications to manipulate Office documents including Project. It works well for their purposes, but again, they have only used it for Word and Excel so can't offer much advice on Project.
EDIT (2019)
: I can confirm that it is a very capable product.