Users new to Linux typically aren't going to mess with drive partitioning and probably accepted the defaults presented by their installer. As time went on they stumbled across a few articles on partitioning and protecting your system against out of control processes filling the drive with garbage or just too much data.
For those of you somewhere between new user and guru admin in your Linux path, you are probably ready to create partitions to prevent such a scenario.
Recommended sizes of these partitions are going to vary with the use the system is being put to.
All systems must have a root partition (/) for the rest of the partitions (except swap) to hang off of.
You must not make the following into partition mounts or "bad things" will happen...
/bin -- Low-level binaries needed to bring up the system (mount)
/sbin -- Low-level system binaries to bring up the system (fsck, lvm, ifconfig, *getty)
/etc -- Configuration files, such as which partitions to auto-mount and where to mount them
/root -- Root (admin) user's home directory.
/mnt and /media -- These are standard mounting point directories and shouldn't contain any files directly, just subdirectories for other partitions or devices to be mounted on.
/proc and /dev -- The files in these folders represent internal system workings.
The following make excellent partitions...
/usr -- General use binaries. Partition to avoid getting carried away installing software.
/opt -- Similar to /usr, but typically contains software not normally installed in a system or software that needs to work out of its own directory instead of sharing /usr/bin. Partition to avoid excessive software installations and to keep such software from filling the drive with data.
/home -- User directories. Partition this so the users can't fill the drive. Consider setting quotas on user directories to avoid users crowding out other users.
/var -- Where databases, email, and logs are stored. Any of which could fill the drive if too much data was being stored. (Failed log rotations, a large number of loggable events, excessive uncaught spam emails, or databases filled with more data than originally expected.)
/tmp -- A reasonably sized tmp directory will prevent working sets from hogging your system.
/boot -- A very small partition (50 MB or so is plenty of room on systems like Gentoo Linux) typically mounted only when updating the system to prevent corruption by unwanted users or processes. If your system package management system can't auto-mount this partition, it might be a good idea to at least auto-mount it read-only and change it to read-write for upgrades. (If it isn't mounted the update process will write to the /boot directory instead of the partition, failing to update the actual boot partition.)