The packages in ?non-free has licenses that do not adhere to the DFSG, but apart from that the only requirement is that the packages are distributable. This means that the project cannot assume that the packages can be autobuilt. This used to mean that for a new upload the package had to be manually built on each of the architectures that it was wanted on, a time consuming process.
This is no longer the case though. There are now some Buildds set up which will build packages from non-free and upload them, just like for the normal archive, so these packages can be up to date on each of the architectures with minimal effort from the maintainer.
The system is run using a whitelist, so that a package has to be explicitly added to the list when the license, has been checked, to ensure that the license is respected. In order to have a package added to this list the maintainer can contact Andreas Barth and Martin Zobel-Helas who run the autobuilders for non free. The full procedure to do this can be found at http://lists.debian.org/debian-devel-announce/2006/11/msg00012.html