I have been asked to come up with an interface for a website that stores information about certifications and companies who hold those certifications.
From the search logs I know users mostly search for a type of certificate but also will search for a particular company to see what certificates they hold. The problem is that the results pages will be completely different. I know that if users look for a certificate they need to be able to view and filter a list of records with attributes relevant to certificates. If users look for a company they need to be able to view and filter a list of records with attributes relevant to companies. The two sets of attributes are, unfortunately, mutually exclusive and this is why I think the best approach is two types of result screen.
My question: is using two types of result screen the only option or am I missing something?
I don't think you're missing anything. This sounds like you have two users groups with different objectives and they should be treated as such: IMO you should have two different search forms and two different result pages.
Having one form and result page only sound good in theory (less pages, less to learn, one page for all needs etc.) but actually isn't good for the user's experience because in both cases (looking for a company vs. looking for certificates) he will have to deal with stuff he doesn't care about.
Phil's answer is perfectly valid... That being said sometimes simplicity can also be good.
There are several way's to handle this. It's ok to "hijack" the search results some based on the likely context of the users search. You can manipulate the first several results if you think they were searching for one "Type of thing" vs "another type"...
Layered Navigation/Faceting on the search engine results page (SERP) could also help the user find what they are looking for.
Lastly take a look at how gettyimages.com solves a similar issue. The moment you click on the search box they ask the user "What are you looking for?"
A follow-on to @Phil's answer is that if you cannot easily distinguish queries for the two types of cases, you might consider generating a separate tab for each type of result and let the user select the one they want. (if you have a good guess as to the type of query, you can pre-select the corresponding tab.) This might give people a clue that other kinds of searches are possible, in case they have a different information need in the future.
But I would argue for keeping the results separate and creating different displays for each type to reflect the fundamental differences.