Running check_plain after t
This would be better:


  drupal_set_title(t("Donation Details for Project: @title"),
  array('@title' => $project->title));


Taken from here


  Special variables called "placeholders" are used to signal dynamic
  information in a string which should not be translated. Placeholders
  can also be used for text that may change from time to time (such as
  link paths) to be changed without requiring updates to translations.
  
  @variable, which indicates that the text should be run through
  check_plain, to escape HTML characters. Use this for any output that's
  displayed within a Drupal page.