The modolo function is pretty much required unless you have 2^32 bytes of RAM available for each hashtable. Modolo is also ridiculously cheap, especially compared to the hashing function.
You could shift or mask the result (as described above) to use a table size of any power of 2 to avoid the modulo.