For example if you pass a car into a sub that makes use of a car who should be checking for null references?
Should I even bother wrapping this code in the below if statement? It seems quite redundant, obviously I could have given a better example because I can't catch the exception and handle it in any way.
Or should I just let the exception bubble up to the caller?
For example:
Public Sub CarService(ByVal car As ICar)
    If car IsNot Nothing Then
        'do logic here 
    Else : Throw New ArgumentNullException
    End If
End Sub