20GB is good for root, var, and usr--provided you're not doing much heavy development on it (if you need to install a number of databases and development frameworks, I find 3-5GB per DB/framework is a decent guideline). I prefer seperate /boot partition that's 500MB myself. The only real reason to split out var is if you're hosting a database and want to do partition-level backups and the only reason to split out usr is if you want to take advantage of limited SSD space.
If you're dead-set on splitting it out that way, then I'd go with about 5GB root, 10GB usr, 2GB + 4GBx(DBs and Dev frameworks) var. Otherwise, give 20-30GB to root, 500MB to boot, 2-4 to swap, and the rest to home.
tmp is a bit trickier. If you do a lot of sandboxing, or compiling packages and stuff, the most I could see it needing would be a little bit more than a DVD iso size for playing with distros--in any case 10GB for tmp is the most I could even imagine it using. More likely, if you're not gonna be playing with VMs and building your own distro, 2GB is probably enough.