I guess I'm not totally satisfied with that answer. I see what you are saying but then why does every bitcoin/altcoin transaction scriptSig "asm" have two parts?
Valid scriptSig must correspond the previous output.
If output is PAY_TO_PUBKEY_HASH (the most popular one) I should provide signature and my public key.
So there are two pushes in scriptSig.
For output type PAY_TO_PUBKEY you already provide my public key in your output. So, I should put only the signature in scriptSig
There are other script types.
By the way, I think you have to be careful with looking at a previous output to get a sending address. If there are multiple outputs in the previous output you will need to verify which one is the correct one...
No-no-no! Stop here and read manuals again
The transaction may have more than one output.
Each output is a pair of value and script.
When I receive transaction from the network i do the following:
1) Is it correct? If yes - continue.
2) Are the output scripts known by my client? If yes - continue
3) Can I redeem(resend,forward) this outputs later? If yes - wow! Somebody sent me money!
Read carefuly
https://en.bitcoin.it/wiki/Script#Scripts please