Actually, it all depends on a concept called 'foreseeability'. If you knew or ought to have known that the debris was on the road and could negatively affect another person, then you can be held liable. That makes sense from a pubic policy perspective. Otherwise, people would be free to create a safety hazzard for others without any consequences to themselves.
In your scenario, since it was an 'accident' that caused the debris on the road, the persons involved in the accident (and the one's responsible for the clean up) would likely be liable. You can look up the concept of 'contributory negligence' and 'causation' and you'll see that under tort law cases. Liability attaches to those parties that cause the harm to the other where they have a duty to those persons. Certainly the driver who runs over the debris will also be held partially liable for any damages (i.e. for failing to avoid it, look out for it, etc.). But, the one causing the debris to be left on the road will not escape liability since 'but for' their action (or omission) the harm would not have resulted to the other party.
Now, if the debris is deposited there unbeknownst to the first party (e.g. a part flies off your car and you don't even notice), they could still be held partially liable, but the extent, if any of their, contributory liability will be much less.
After all, there is also the concept of 'strict liability' in tort law where if something escapes from your property and causes damage to another, you are responsible. For instance, the case of a stone flying off your tire and shattering another vehicle's window. You likely couldn't avoid the situation at all, but the stone did come off 'your' property and so you should be held liable.
Bottom line: always consider the 'neighbour principle'.