I don't know about returning a null from something that's guaranteed to not be null, but for guaranteeing an object reference, you can use the Null Coalescing Operator ??
Something like:
string lname = (person.Name??String.Empty).ToLower();
It will return an empty string instead of null for the null case, but it will work.
Returning an empty string makes more sense than returning a null; if you return a null, it will throw again if you chain another operator onto it.