vero, non è possibile (x ora) farlo con i css
però proprio a voler ottenere il risultato con minimo sforzo puoi includere questo javascript esterno che, almeno con i browser moderni, fa quello che chiedi (senza controindicazioni, cioè puoi avere qualsiasi altro gestore evento sul body o sugli input, compresi onfocus/onblur)

gestori_evento_dinamici.js
codice:
<!--
function changeColor(e,clss){
  if(!e) e=window.event;
  var src=(e.target) ? e.target: e.srcElement;
  if(src.className) src.className=clss;
}

function init(){
  if(document.getElementsByTagName && typeof(document.getElementsByTagName("BODY")[0].className)!='undefined'){
    var inp=document.getElementsByTagName("INPUT");
    for(var k=0;k<inp.length;k++){
      if(inp[k].type=='text' && inp[k].className=='formfield'){
        _attachToEvent(inp[k], "focus", function(e){changeColor(e,'formfield_focus')});
        _attachToEvent(inp[k], "blur", function(e){changeColor(e,'formfield')});
      }
    }
  }
}

function _attachToEvent (obj, name, func) {
  if(obj.addEventListener) obj.addEventListener(name, func, false);
  else if(obj.attachEvent) obj.attachEvent("on"+name, func);
}

_attachToEvent(window, "load", init); 

//-->
nella pagina
codice:
<style type="text/css">
.formfield { 
background-color: #ffffff; 
} 
.formfield_focus {
background-color: #00ff00; 
}
</style>
<script type="text/javascript" src="gestori_evento_dinamici.js"></script>
...
<form>
<input type="text" class="classe_non_interessata" name="campo0" />
<input type="text" class="formfield" name="campo1" />
<input type="text" class="formfield" name="campon" onblur="alert(this.value)" />
</form>
ciao