I remember how computers used to have an instant off power button in that if you pushed it the computer would turn off instantly like a TV, nowadays the button needs to be held down, does this gives the drives a chance to spin down or prepare to be shut off or anything? Or is it like that just to prevent pushing it by mistake?
The power button on a modern PC has 2 functions:
1. When pushed briefly it sends a signal to the OS, telling the OS that the power button has been pressed. The OS then has the option to perform some sort of action - e.g. shutting down, hibernating or going into standby. Alternatively, the OS can ignore the button push.
2. When held for a period (usually for 4-10 seconds), the button triggers a circuit on the motherboard that tells the PSU to shut off. This allows the system to be powered off, if the OS does not support the power button signal, or the OS has crashed and is unable to respond.
In situation 1, a requirement to hold the button is often configurable in the BIOS. E.g. you may be able to configure that the motherboard ignores presses of less than 4 seconds - and only after holding for 4 seconds does it send the OS the 'power button pressed' message. This is useful for servers, where you don't want people to accidentally shutdown a server by brushing the button.
In situation 2, the power control circuit on the motherboard does nothing to prepare for the power going out. Shutting off the power in this way has exactly the same effect on the system as pulling the cord from the wall, or turning off the PSU with an external switch.
Modern hard drives should not be damaged by this. Old hard drives, would need to have a 'park' command sent to them, so that the heads could be retracted and locked into their storage position. Modern hard drives detect power failure, and when the power goes out, automatically retract the heads and lock them down (they use the momentum of the spinning platters, and switch the spindle motor to generator mode, to form a kind of crude UPS).
While a modern hard drive won't be damaged - the data might be. Writing data to a hard drive platter is relatively slow, and requires precise spindle speeds, and there isn't time for the drive to do anything except finish writing the sector it was working on, and retract the heads. Any data left in the disk cache will be lost. Modern file-systems like NTFS, ext4, HFS+, ZFS, etc. are very careful to ensure that losing the data in the disk cache shouldn't damage anything except the file that was being saved. (Assuming that the drive responds to advanced cache control commands correctly). However, older FSs like FAT and older OSs like Win95 were much less careful, and turning off the PC while the hard drive was active and write caching was enabled, could corrupt hundreds of files or directories.