I started out doing Windows admin, and then moving into Linux administration. There are still somethings I don't know how to do well.
Like most of the others, going from an all GUI environment to more or less command line / config editing has been by far the biggest challenge. Also learning where everything lives has been a pain point for me. The best thing I have done lately is to try and learn how ONE of the distros does things and stick with it.
Like the others I expected everything to just work and to find the drivers straight away on the manufactures web site, but as previously stated that is often not the case. I still can't get the wireless in my laptop to operate in any Linux distro.
Storage has also had a steep learning curve to it. Learning about LVM and disk partitions in Linux has been a struggle for me. In Windows is by default one big drive, but in Linux there are a few different partitions by default, and if someone is doing NFS shares with symbolic links it can really confuse the new to Linux Windows admin.
Users, groups, and file permissions...Users are simple enough, groups by them selves are also simple. Trying to figure out the best way to do complicated file permissions, not so fun.
Working with NICs and the networking system in general has also taken a while longer than I anticipated. I can get things setup pretty quickly (while doing the install) but for a while if I had to make a network change it was a struggle.
Package management / program installation
I now know that I can use YUM on CentOS and apt-get on Ubuntu, but what if what I want isn't packaged up yet? Or the package on the third party repo is broken, doesn't include the features I want? I have to WHAT? BUILD IT? REALLY? That to me has been the biggest stumbling block for Linux.