What is the problem? Do you have NULLs in the the MainZip when it's not present/used?
SELECT D.*
FROM Doctors D
INNER JOIN ZipCodes Z ON
(D.MainZip IS NOT NULL AND D.MainZip = Z.ZipCode) OR
(D.MainZip IS NULL AND D.AlternateZip = Z.ZipCode)
SQL DBA,SQL Server MVP(07, 08, 09) A socialist is someone who will give you the shirt off *someone else's* back.