Hey,
You certainly can serve up different scripts. Best way I can think of is to delineate machines based on MAC. Using puppet:
tftpboot::linux_model { 'some_profile':
kernel => foo
initrd => bar
ks => /path/to/ks/for/some_profile
...
}
tftpboot::linux_model {'some_other_profile':
kernel => foo
initrd => bar
ks => /path/to/ks/for/some_other_profile
...
}
::tftpboot::assign_host { 'default': model => 'some_profile' }
::tftpboot::assign_host { 'DE:AD:BE:EF:00:01': model => 'some_other_profile' }
In the some_other_profile ks file, you can reference a re-created diskdetect to do what you need.
Hope that helps!