If you would like to have Customers register before checkout, you can turn on Open Registration.
See: s2Member -> General Options -> Open Registration.
You will need s2Member v3.0.6+
Once you turn on Open Registration, you can allow Customers to register first, for FREE. Then hit them with a payment button on the Login Welcome Page. You could use some of s2Member's Advanced Conditionals to tailor this specifically for your needs. s2Member also comes with a full set of WordPress Hooks/Filters embedded into its source code; giving you the ability to modify routines if you need to; and without modifying the original source code.
That being said, you really won't need to do this, unless you want to. Placing a PayPal Button on the Login Welcome Page for Free Subscribers, will allow a User ( who just registered ) to proceed through the checkout process, and s2Member will "update" their account, instead of asking them to register for a new one. s2Member handles this automatically, just in case you're wondering.
Pls can you tell me where //how I should customise wp-login? I knwo i need to get it to refer to the css of my theme, but where is s2member telling wp-login to have the s2member header/banner?
Many thanks