Yes, companies should have to pay for contamination done prior to laws being put in place. Companies are not people and are therefore not held to the same rules as people. While a person may not be held liable for something illegal they did before a law was made, companies have a responsibility to those around them to act responsibly and should be charged for any contamination they may have incurred before a law was put into place.
Laws are typically put into place after much debate, and in regards to environmental laws, after much research. It is important for companies to be honest and act in the best interests of its customers (and its customers' health). Companies should pay for knowingly contaminating the environment and endangering the health of all living creatures in the vicinity. Before laws are put in place, there is typically decades of research. Companies that acknowledge the evidence that their products are hazardous yet continue to contaminate the environment should be penalized for their recknessness.
Often times laws are made and put into place because the discoveries that happen. For example, dumping waste water into rivers/streams from your company, and finding out it endangers people, a law is then created to help curb that and clean up the environment. I feel that if there is PROOF that the company did in fact cause the contamination, that some of the damages retroactive of 5 years should be paid towards the clean up or actions needed for the contamination.
Companies should not have to pay for contamination done before there were any environmental protection laws in place. If there were no laws, then the company did no wrong. Laws cannot be made retroactive to prosecute people or companies. Some could say that the companies should have been more environmentally friendly, but if there were no laws in place, it was the company's prerogative to act as it saw fit.