I wanted to know is there a way to find if a person donated to a particular site or made a transaction with a known address. I mean I know it could be looked up on blockchain easily, but what I am trying to say is if you have an address of a person and you want to know whether a person has used it on a particular site or not, how would you do that? Is there a website which does that - take two addresses and reveal whether they ever transacted or not?
There is no way to achieve what you want effortlessly. I am not aware of any public free site that does what you want and any service that does this kind of work would not be cheap.
Short of sorting through the blockchain looking for transactions related to the address of the known person A and then trying to correlate other addresses that transacted with known person A address from other web sources could you begin to try do what you wish to accomplish. For instance wikileaks donation addresses are public, you can search for if person A address paid the wikileaks address but thats a lot of either manual work, coding your own scripts, or paying someone else for the work.
Your question is uncomfortable but valid.
Uncomfortable because Bitcoin serves to allow its users permissionless transactions, yet, the reality is that Bitcoin transactions are not anonymous by default. Tracking and surveillance of Bitcoin transactions is possible.
Since your question is valid - and important - it can reasonably be disclosed that the blockchain and forensics can trace most transactions to an individual via their ISP and connection logs.
There are several companies in existence which specialize in blockchain analysis and who sell this information, as a service, to any takers - whether government, public or private entity.
Of course, there are means - independent of, and unrelated to Bitcoin - of defying tracking, so not all transactions and addresses can be traced to a source or identity.