custom/manifest/init.pp:

class custom {
# This just does some prep work for the defines below
file {
"/tmp/puppet":
ensure => directory,
mode => 700, owner => root, group => root;
}
}

# This define is sick and wrong.
# It is a recursive-to-/tmp/puppet file { ensure => directory }
define mkdir () {
$parent = template("custom/mkdir.erb")
if !defined(Mkdir["$parent"]) and $parent != "/tmp/puppet" {
mkdir {
"$parent":
}
}
file {
"$name":
ensure => directory,
owner => root, group => root, mode => 400,
require => File["$parent"];
}
}

custom/template/mkdir.erb:

<% require 'ftools' -%>
<% File.dirname(title).each do |chunk| -%>
<%= chunk -%>
<% end -%>