I think that very much depends on the kind of application you want to run on your cluster - its not clear from your question. If you want to be able to run seti@home stuff, then you don't need much more than a network connection. If you want to run programs that specifically support parallelism (such as some ray tracers) then they'll sometimes have their own parallelism layer (such as MPI) which will require a network connection and sometimes a shared file system. If you're running mainly windows desktop applications, then its unclear to me how you can use them in a clustered configuration - you could set up remote access on each one so that you can connect to each from a single console and run different applications on each one.
A classic 'beowulf' configuration would probably have MPI and a shared filesystem.