I'm running puppy 1,0.5 with the madwifi (Atheros) driver on my laptop (hard disk install) and I had a problem with how puppy reboots. If I chose Reboot from the Window Manager Menu the wifi card is not brought down and puppy hangs hard on the reboot trying to set up the card up. The only option is to power off (which should leads to an fsck session but that's another problem for another day)
If I do a "ifconfig ath0 down" before I use the reboot menu choice then the laptop will finish the reboot I created a /etc/rc.d/rc.reboot-local script with that command in it. Then I modified my /etc/rc.d/rc.local to add "cp /etc/rc.d/rc.reboot.-local /tmp/rc.reboot" and that works fine. I don't know if its my card or laptop or the drivers or the reboot scripts that are at fault but I thought I'd pass the hint on.
My only real complaint is that the reboot scripts seem to have their output sent to /dev/null so you never know if your local script is being called (or even if any of rc.reboot* scripts are called. There is an error message in /var/log/messages in the unmodified puppy about not having a /tmp/rc.reboot and there isn't one unless you put on there yourself. It's not clear from the screen or syslog what scripts are being run or if they are being run.