Everyone writes their own, mainly because they vary depending on the type of authentication you choose. The main choice is Application or webserver level authentication with web server being more secure. Within web server authentication you can choose LDAP authentication or Basic authentication with .htaccess files. Within Application authentication you have to start thinking about tokens and session authentication. There are modules to support each type of authentication Net::LDAP, Apache::AuthenLdap, Apache::AuthenPasswwd for example.
When you consider Microsoft Passport and the Liberty Alliance specification single sign on will be standardised into something everyone will have to use and maybe then we'll all get to use the same modules. It's a nice idea I just hope for my sake it is based around an ldap server