Da du von weiteres <span>'s sprichst nehme ich an, dein mit dem Margin formatierter Text steckt auch in einem solchen <span>.
Da <span> aber kein Block Level Element ist, wird die Margin-Formatierung nur auf die erste Zeile angewandt, bricht der Text um (durch einen <br /> oder auch dadurch, das der Text am automatisch umbrochen wird) geht der Margin verloren.
Entweder du steckst den zu formatierenden Textblock in ein Block Level Element, wie etwa <div> oder <p>, oder du gibst dem <span> als zusätzliche Formatierung im css noch 'display: block' mit, um ihm so das Verhalten wie ein Block Level Element zu geben.
Matt