How to determine if a script is started by cron? I have a script that run in some cases when some event occur. It also run when cron run (cron.php) or the "Run cron button" from admin panel is clicked.

How can I determine that from script that is started by drupal cron.php?
You may check your $_SERVER globals in the script. 

A better way, I think, would be to pass a parameter with your call to the script that separates the caller (I.e when you call it from the HOOK_cron(), add a myFunc(..., $caller="cron") to your call. And declare myFunc(..., $caller=null) as default parameter.

If this is not possible, you may set a session variable in HOOK_cron and check that in your script.