You should read Puppetlabs docs on type and provider development if
you have not done so already. In particular, read this:
http://docs.puppetlabs.com/guides/provider_development.html.
The standard mechanisms for choosing "suitable" and default providers
involve the using the 'commands', 'confine', and / or 'defaultfor'
functions in your *provider's* code. The first two of those allow you
to determine whether a particular provider will work on the node at
all (is "suitable"), and the last allows you to declare your provider
as the default for a specified (non-empty) fact pattern. Those
provide no means to declare a universal default, but you can declare a
default for a fact pattern that you are confident will match all your
nodes. For example, perhaps this would work:
defaultfor :kernel => "Linux"
or maybe
defaultfor :domain => "
mydomain.com"
John