To my understanding, the CSS specificity rules indicate that a pseudo selector has the same weight as a tag selector. So a selector like "div p a" would be more specific than "a:link".
But as the following test case demonstrates, that does not seem to be the case. Why is the link red?
<!DOCTYPE HTML>
<html>
<head>
<title></title>
<meta charset="UTF-8">
<style type="text/css" media="screen">
a:link { color: red; }
div p a { color: green; }
div.foobar p a { color: green; }
</style>
</head>
<body>
<div>
<p>
<a href="http://somecrazyurlwierdthing.com">A link... why is it red?</a>
</p>
</div>
<div class="foobar">
<p>
<a href="http://somecrazyurlwierdthing.com">But it turns green when you add a class selector.</a>
</p>
</div>
</body>
</html>
Edited the example to include the "div.foobar p a" selector.