You're right about Spiral though... Spiral is iterative, so its much more compatible.
the only way that it can not have multiple passes is if the program is thrown away after V1.0. Any successfully program will be maintained and extended.
I disagree. to get a scrum project (or any project) going, you do need to have a vague idea of what you want (e.g. I want a website to sell my widgets online) and a few features for the next iteration (.e.g. List all the widgets. Take an order by email).
Scrum just says that you can inspect, adapt and iterate over that process.
meeting with the customer to figure out if they want an accounting system or a CMS
That's an exaggeration. You seen some vision of what broad need the software fills before you start, and an initial backlog of high-priority features to get you going.