UML can run almost everything that the host can run. Networking works in all permutations - UML to the host, to the local net, UML to the Internet as a whole. Also, private networks with no involvement of the host networking is possible.
All filesystems and network protocols work since they are architecture independent.
Kernel modules work.
Anything in the kernel that is hardware-independent will work.
The exceptions in userspace are things that use privileged instructions. The worst offenders are hwclock (which uses iopl and inb/outb) and many installation procedures (which probe for hardware in very non-portable ways.