Sounds like you're looking for something along the lines of Linux
Terminal Server Project: http://www.ltsp.org. These days, a good i5 or
i7 based machine could easily deal with a handful of clients. You
could even send all your net traffic through Squid+SquidGuard if you
had to deal with requirments for filtering on the same box. A simple
rsync between your primary system and standby computer for redundancy,
add a heartbeat program for automated failover. Toss in something like
CrashPlan for offsite and onsite backup and all bases should be more
or less covered.

How do you want ot deal with accounts? Are you looking at local
accounts, or did you want to do something more complex like LDAP,
Active Directory, Open Directory, etc?

Do you want users to actaully log into the system under a user, or do
they only need to hit a web portal to authenticate?

Should patrons be able to access USB flash drives attached to thin
clients, or will any files created be stored on the server and only
accessable through your system, or do you want to only have termporay
files that are cleared when the user logs off?