I don't mean log in in the usual sense. If you're running a program where 10,000 people show up between 9:58 and 10:02, they are, in effect, logging in. They're either creating a temporary account/object in a database, or accessing their personal record for viewing. For apache, and many other web servers this can be a problem case if the machines aren't configured properly.
I'd say this is a candidate for 1+N machines. 1 machine to run the database if possible, and N machines to run the huge number of processes/tasks/threads needed to handle all those people that will be clicking at the same time.
First, off, build your apache/php boxes lean, without a lot of crapola running on them, and give them lots of memory. A typical Dual III box will not hit 50% CPU usage until it has well over 300 or so active database connections going at once.
You might want to look at disabling keep alive and configuring apache for a max number on each box that keeps it from starving the database server.
If you can go up to a Quad PIII Xeon or Dual AMD TBird, or multiway SGI/IBM/HP/Sun iron, then it make make more sense for long term maintainability to put it on one very hardy box. Stay away from frills, go for memory and I/O bandwidth appropriately.
With apache configured to NOT have keep alive on, it should allow everyone to get a daemon almost all the time, since most people only click every few seconds.
Have you (the original author) modeled your user actions over time, average time between page views and such? That's really necessary to see if you can handle the load on one machine. If you click a page every three seconds or every twenty seconds, that's a big difference.