Hi,
You can get this by doing the following:
// position first sprite at 100, 245, and 10 units away from the camera
sprite.transform.position = cam.ScreenToWorldPoint(new Vector3(100, 245, 10));
GameObject newSprite = GameObject.Instantiate(sprite.gameObject) as GameObject;
// get untrimmed bounds of this object
Bounds bounds = sprite.GetUntrimmedBounds();
// you can do this if the objects have the same dimensions
newSprite.transform.position += new Vector3(bounds.extents.x * 2.0f, 0, 0);
// but really what you need is
//Vector3 secondBounds = newSprite.sprite.GetUntrimmedBounds();
//newSprite.transform.position += new Vector3(bounds.extents.x + secondBounds.extents.x, 0, 0);
If you want to position a sprite (M,N) pixels away from another sprite, simply do:
Vector3 screenPosition = cam.WorldToScreenPoint(firstSprite.transform.position);
secondSprite.transform.position = cam.ScreenToWorldPoint(screenPosition + new Vector3(M, N));
Using the first method is much more reliable, as it will still work when the sprite sizes change.
Cheers,
unikron