I agree that it somewhat depends on your actions...what "it" is that you have done.
Say "it" is fixing a bug in the program:
"I have done it in the system" means you have gone "IN" to the system to fix a bug.
"I have done it on the system" means you fixed a bug USING that system.
That's only one example. Like I said, you would need to be more specific with what "it" is, but even then, it might sound right either way.