If you want service2 to run regardless of whether service1 or pub.client:ftp fails, you can wrap the invocations in a SEQUENCE with Exit On set to DONE.
Toby,
If you want the service2 to run regardless of success / failure of FTP service—
wrap the FTP service call in a different flow service (say service3), handle all the error conditions of the FTP serive in the service3 and always exit with signal-SUCCESS.
That way it will always execute service2 regardless of the output from FTP service call.