randomly depending on browser -- no joke. None of them obey vertical-align in relation to line-height the same way. usually the most you can hope to accomplish is fixing the line-height a predictable amount.
My advice - don't even TRY. Usually what I do is use two background images inside the padding on each side. One on the blockquote for the start, one bottom-left in the padding on the P inside the blockquote. You could use some span and absolute position them, but really it's rarely worth it. Besides, you don't need quotes for a quote when you can just set italic and say "close enough"
Invalid markup in MODERN doctypes (aka strict). Blockquote cannot directly contain CDATA or inline tags. It MUST contain at least one block level container (Much like noscript)... So swap that SPAN for a P
Sure you can slap anything in it any old way in Tranny, but transitional is for sleazing out support for old/outdated crap, not for writing new pages or new code.
Of course you are using :before and :after to add the quotes -- which I still say is the wrong approach for quotes as they are CDATA, and as such should be in the markup as QUOTES. This 'auto-adding' quotes to things nonsense -- NOT A FAN, especially since it doesn't even work in the browsers the majority of people use. (Hell IE). Generated content is a bad idea. I'd sooner put them in spans in the markup so CSS off it still looks like a quote. As to your positioning, I'm not entirely sure what that has to do with your question -- it sounds to me like if you put them in the markup in the first place, you wouldn't have to play with them as much as you are.
Inline level elements have no dimensions, they're treated like CDATA in everything but IE. To get that working in standards compliant browsers you would have to specify inline-block (which STILL doesn't work right everywhere -- thank mozilla for that)... or just use a block level tag like P which would be the CORRECT markup. This is why on a inline-level tag setting top/bottom padding is either ignored, or rendered without changing the vertical position overlapping the preceding/following lines, and why setting WIDTH or HEIGHT is outright ignored as well. That's what inline-block is there to address (which will grow the calculated line-height to fit based on vertical-align)
As I'm fond of saying, the CSS is only as good as the markup it is applied to. Garbage markup == garbage CSS.
I say inside, and since that's inline-level it too should be in a block-level tag like P.
Blockquotes are another of those tags that people don't look closely enough at the rules of using them. If I was writing that same code it would probably read:
<b>"</b>Familiars... I hate Familiars<b>"</b>
Of course, I'd take a giant axe to those nonsensical PRESENTATIONAL classes like 'rt' and 'lft' -- at that point you might as well go back to using HTML 3.2 without CSS. Say what things ARE, NOT what they are going to look like or how they are placed in the layout!