Max() throws an ArgumentNullException if the source doesn't have any elements. You could write an extension method that checks for this and returns a null (or whatever you want) if there aren't any elements.
public static Nullable MaxOrNull(this IEnumerable source)
{
if (source.Count() == 0)
return null;
else
return source.Max();
}