Ecco le prove:
il file html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Document Title</title>
<link rel='stylesheet' href='index.css'>
</head>
<body >
<div class='c'>


Ciao</p>
<span>


Che vuoi?</p>
</span>
<div>


Sei Brutto</p>
</div>
<span>


E sì sei bello te</p>
</span>
</div>

</body>
</html>
il foglio di stile allegato
body {
background-color: #fffff;
color: #00000;
}
p {
color: blue;
div.c {

}
div.c > p {
color: red;
}
Ho provato varie combinazioni, e solo il primo

mi diventa giustamente rosso, mentre tutti gli altri restano blu.
Non è che hai sbagliato qualcosa?
PS provato su Mozilla, tanto IE .... vedi sopra