the spans there for the image replacement text for the lables, as I'm using graphics, and I'm allready using the class for other stuff on the site so wasing bandwidth it is not.
You can use real image replacement and still have the semantic, NECESSARY labels.
One way to do it would be Gilder-Levin, though this would require some unique class or id (so if I say "unique" you're maybe wondering why I say "class"... it's just because I'm lazy and it's easier for me to type . than # which my keyboard tends to miss a lot) on each label.
Or, most of the time you can even get away with an actual image with alt text. There was an issue with one particular screen reader somewhere but it's not a modern one... I'd have to find out.
<label for="IDoftheInput"><img src="blah" alt="Email Address:" /></label>
This is legal, and so long as you make sure the alt text colour is easily readable when images aren't present, you're good.
If you wanted to do Gilder-Levin or something:
<label for="IDoftheInput" id="emailImg">Email Address:<span></span></label>
Eric Watson has a nice way of doing Gilder-Levin using z-index, but either way, you can make a form semantic and working AND add whatever bling you want later.
Also, even though the validator won't say anything to you about it as you are using XHTML, when you have a fieldset, you ought to have a LEGEND.