Usually you vacuum pack them with some desiccants in side. Or in other words put the boards in a bag, throw in some moisture absorber packets (same stuff you see in vitamins that says do not eat). Then suck all the air out of it then seal it off. I suppose if you were fancy maybe nitrogen would work too.
Also different finishes have longer shelf life, hasl or tin is not so great, silver immersion is better maybe you can get 6 months out of that, and then gold enig will probably give you a year or more. But sealing them up will be the best. Your manufacturer should be able to do it for you if you don't have a vacuum sealer.
I think an example worth a million words, so I wanted to make a tutorial on this.
Here is the box I am going to create an outline for:
Here is an example PCB drawing from the datasheet of the box:
After opening up Pcbnew, select the layer for edges. In the current version of KiCad (BZR4008), it is called "Edge.Cuts". First, I am going to draw the upper and lower edges, which are 62 mm. Then the left and right edges, which are 32 mm. I am using the tool below which has a tooltip of "Add graphic line or polygon".
Now that everything is fine, I can draw the other shapes:
Here is the tool we are going to use for that:
This tool is basically a partial circle. To use it, click on the point which will be the center of your circle, then with the mouse, you will set the radius with a visual aid of the KiCad. A very helpful thing is to change the cursor so it shows full coordinates, with the button shown below:
Just for the sake of an example, let's make the edge facing outside:
You cannot make correct ellipses with this method, unfortunately. You have to use the graphic embedding, or the approximation methods for that, which were mentioned by Nick Alexeev.
Best Answer
You can create a non-square PCB simply by defining whatever shape you like for the board outline. As for a non-flat one, PCBs just aren't made that way.
There are some alternatives that you could consider: