Yes.
require is basically shorthand for
class a {
include x
Class['x'] -> Class['a'] # x before a
}
If the require function makes things difficult, you can manage the
relationship using the ->, <-, <~, ~> operators, or as meta-parameters
in resources (i.e. require => Class['x']).
You can also look at Stages if you like to separate the concerns (some
classes should be after some other classes, but you do not want to
record the exact classes as you may want to change them).
You can create additional stages (there is a main stage by default), and
assign classes to stages.
See more here:
http://docs.puppetlabs.com/guides/language_guide.html -
"Run Stages".
Hope that helps.
- henrik