if you run the same query in Query Analyzer what do you see? Are lots of NULLs, that would display as you describe. Is there conditional suppression of a report object, that would also display as described.
Crystal, will print a row on the report for every row in the result set that it 'sees', regardless of whether or not there is a value to display....
Oh, here's another thought, do you see lots of detail sections in the preview mode? CR will display which section it is displaying, which might help you diagnose what is occurring in the report.
HTH