Validation default value
It's safe. A few things to consider: 


When the list is empty you might want to return false.
Consider using an abstract data type (instead of string) which stores your data (the string) and move the validation logic to there.
As Jeff Vanzella already suggested, you can return false immediately when you now that a value is not valid. It's faster and easier to read:

bool AreValid(list&lt;string&gt; vals)
{
   foreach(string val in vals)
   {
       if(!condition1)
          ...
          return false;
       if(!condition2)
          ...
          return false;
   }

   return true;

} 


Note that you don't need the else keyword anymore.