Forum OpenACS Q&A: Re: How do I add different custom buttons in edit and new mode with ad_form?

You might want to look into the poorly documented (because I haven't finished the new doc I was writing) templating wizard for forms with multiple steps.

That said, you can conditionally add sections something like this:

if {![ad_form_new_p -key object_id]} {
    ad_form -extend -name my_form -form {
        {done:text(button) {label "Done}}
    }
}
Then in your processing section (on_submit or edit_data)
if {[exists_and_not_null done]} {
    ad_returnredirect back_to_previous_page
    ad_script_abort
}