There are plenty of ways to catch a Zigzagoon on Soul Silver, just remember to keep around 10 Pokeballs handy because it's not as easy as you'd think!
A few good places to start are Sprout Tower, Burned Tower and Bell Tower whilst listening to the Hoenn sound. The Zigzagoons will appear when the sound is playing which is on the wednesdays, so check your Pokedex. You can find some great information about these locations and also about the best strategies for catching a Zigzagoon at Bulbapedia - the encyclopedia for pokemon here - http://bulbapedia.bulbagarden.net/wiki/Zigzagoon#Game_locations
Another great and accessible place to get yourself a Zigzagoon is the Johto Safari Zone on Route 48. Head to the plains and emptier areas of grassland, as this is where the Zigzagoons spawn. Remember to save some of your safari balls because the catch rate is rare at 10%.
If you are struggling in the Safari zone a good method is to complete the Warden's first two tasks - the later is catching him a Sandshrew. This allows you to customise the areas, which means you can place objects in the safari which will help corner or attract wildlife.
A Max Repel combined with plenty of tree stumps and obstacles, attached to a Pokemon at level 40 will be a good way of only attracting the upper level catches such as Zigzagoon. Serebii.net has some more useful information about using the safari zone to your advantage: http://www.serebii.net/heartgoldsoulsilver/safarizone.shtml