I have had this problem and this is my kluge:
function justdoreturns($string){
$string=str_replace(chr(10), 'fixmepleasearandomstring',$string);
$string=str_replace('fixmepleasearandomstring'.chr(13),chr(13), $string);
/* I don't think chr(13).chr(10) exists, but let's fix it anyway' */
$string=str_replace(chr(13).'fixmepleasearandomstring',chr(13),$string);
$string=str_replace('fixmepleasearandomstring',chr(13), $string);
return $string;
}
Remember that email programs may be compounding this effect: changing everything to single cr's will fix the problem.
The function above will NOT affect multilple line breaks:
$string=" this
is my string";
will stay like that before and after the function.