I'm an undergrad at the University of Waterloo.
The way most undergrads have dealt with this problem is to buy and bring their own device. It's gotten to the point where we exhausted our IPv4 allocation on our eduroam (Wi-Fi) network, so a year or two back they switched eduroam to mass NAT. (It appears that they're only just starting to add IPv6 support in, but I digress.)
Frankly, any sysadmin worth their salt knows that admin/root access can easily be granted in a secure network, either by using Group Policy (Windows/AD) or by using virtualization (for client-server computing; think KVM/libvirt) or access control (SELinux).
Edit: Need proof? Try http://www.coker.com.au/selinux/play.html
That said-- if you're installing new software and programming languages, you probably shouldn't need or want root, especially if you're using Linux. The binary packages are almost always too stale for what you're doing -- and if you're building from source, you can set PREFIX to $HOME (so you get $HOME/bin, $HOME/man, etc.).
For Ruby and Python in particular, rbenv and virtualenv make it a breeze to use the language (and all the packages/gems you could want) without ever needing to touch root.
The disadvantage of this is that now you have ten post-docs each with a copy of Go and the GHC and Python and Ruby (and sources!) sitting in their homedir, which means that you're now storing thirty gigabytes of source when you could have a few megabytes of binaries. (Think about how this scales when you have 1,000 undergrads on NFS homedirs.)
But that's a trade-off that is up to your department's sysadmins to make.