I use a pxe install for a lab of machines, one problem I have is that the hostname is always set to 'ubuntu'. This is wrong, it should instead ask during the install what hostname should be used.
One hack was to set the hostname file at the end of the preseed, in the script section. But this still doesn't ask the installer.
In your preseed file,
I let the preseed go fetch the hostname from a webserver. Usually its just "newbox-xxx" where xxx is a random number. The PHP script on the webserver decides. This helps in automation because I can install cluster nodes easily if I know they are about to come online. Then the whole preseed comes to life if its a specialty box. For instance, I don't do much on a box named newbox-xxx but if its called hc4-xxx (hadoop cluster #4 - node xxx) then I know to allow the preseed to do customizations and then register itself with the cloudera manager.