My company is building an application that interoperates with a packaged application that our customers own. We don't have a good relationship with the package's vendor; they basically see us as competitors and wish we would die in a fire. My business partners are edgy about this, and have been suggesting that I remove all references to this packaged application from the software's UI and documentation, because they think using its name opens us up to legal issues.
This is going to make both our software and our documentation look pretty dumb, and confusing besides. Our users work with Foo all day, they have been using Foo every day for years, and they are going to use our product to get data out of Foo. The button they push to do this should be labeled "Get data from Foo." If it's labeled "Get data from external application" (one serious proposal) they'll be able to figure it out, but why should we force our users to work that hard?
Additionally, there are other packages in our market that we're going to have to interoperate with, and it's going to become necessary for both the UI and the documentation to disambiguate between packages. This is going to be hard to do if we don't use their names.
On the other hand, I certainly don't want to give the impression that we've developed this application in some kind of joint venture with the other vendor, not least because their product is awful and I just don't want to be associated with it any more than necessary.
I see plenty of software out in the world that interoperates with (say) Microsoft Word, and that's not shy about using "Microsoft Word" to reference it. The software and documentation makes it clear that "Microsoft Word" is a trademark of Microsoft, and people move on.
Edit
Rather stupidly, I edited out the last sentence when I posted this, which was the actual question: What kinds of experiences have other developers in this situation had?