This question is very much along the lines of the "Impossible Question" from Joel. There is no right answer to this question.
I would start breaking this down into a list of all possible failure points:
- Database Server
- Database
- Middle Tier
- Middle Tier Server
- Application
- Web Server
Then for each one of them, I would identify reasons for breakage, and how to recover from it without having downtime. The ones that I do not know the answers to, I would profess to as much.
For example, Let's build a list of reasons a Database server goes down. Since we are looking for 100% uptime, we ignore nothing - no matter how far fetched
- Hardware goes bad
- Power goes down
- Network card goes bad
- Operating System unexpectedly crashes
- O.S. Upgrades break system
- Dumb System Admin or DBA
- Dumb Janitor
Some Possible solutions (considering SQL Server on Windows back-end)
- Lock on door
- Database Mirroring (with regular failover testing)
- Multiple NICS
- Clustering (with regular failover testing)
- Get better people
You can basically keep answering this question until the interviewer throws in the towel because there really isn't the One-Right-Answer to this question.